मैं चारों ओर पढ़ रहा हूं और मुझे रूबी के लिए यह micro-framework called Grape मिला। मैं वर्तमान में वेब इंटरफेस को संभालने के लिए Sinatra का उपयोग कर रहा हूं लेकिन ऐप के एपीआई पहलू को संभालने के लिए मैं अंगूर को भी लागू करना चाहता हूं। मुझे इस विषय के लिए कोई उपयोगी सुझाव नहीं मिल रहा है। अंगूर के दस्तावेज़ीकरण में कहा गया है, "अंगूर रूबी के लिए एक आरईएसटी जैसी एपीआई माइक्रो-फ्रेमवर्क है। इसे रैक पर चलाने के लिए डिज़ाइन किया गया है या रिकस्ट एपीआई को आसानी से विकसित करने के लिए एक सरल डीएसएल प्रदान करके रेल और सिनात्रा जैसे मौजूदा वेब अनुप्रयोग ढांचे के पूरक हैं।" तो ऐसा लगता है कि दोनों सही संयोजन के आधिकारिक तरीके होना चाहिए? यह ऐप हेरोकू पर भी चलाया जाएगा।सिनात्रा और अंगूर एपीआई एक साथ?
उत्तर
वाक्यांशों आप देख रहे हैं कर रहे हैं:
- कई रैक क्षुधा
- रैक मिडलवेयर
- मानचित्रण यूआरएल रैक सिनात्रा
बात इस तरह का। अंगूर, सिनात्रा और रेल सभी Rack ऐप्स हैं। इसका अर्थ यह है कि आप अपने अंगूर ऐप, अपने सिनात्रा ऐप और अपने रेल ऐप का निर्माण कर सकते हैं, और फिर आप उन्हें चलाने के लिए रैक का उपयोग कर सकते हैं क्योंकि वे सभी रैक अनुपालन हैं क्योंकि वे इंटरफ़ेस साझा करते हैं।
अभ्यास में इसका क्या अर्थ है कि आप एप्लिकेशन लिखते हैं, और फिर आप उन्हें चलाने के लिए रैकअप फ़ाइल में डाल देते हैं।
# app/twitter_api.rb
module Twitter
# more code follows
# config.ru
require_relative "./app/twitter_api.rb" # add this
# change this to:
run Rack::URLMap.new("/" => Frontend,
"/api" => API,
"/twitter" => Twitter::API)
:
# app/frontend.rb
require 'sinatra/base'
# This is a rack app.
class Frontend < Sinatra::Base
get "/"
haml :index
end
end
__END__
@@ layout
%html
= yield
@@ index
%div.title This is the frontend.
# app/api.rb
# This is also a rack app.
class API < Sinatra::Base
# when this is mapped below,
# it will mean it gets called via "/api/"
get "/" do
"This is the API"
end
end
# config.ru
require_relative "./app/frontend.rb"
require_relative "./app/api.rb"
# Here base URL's are mapped to rack apps.
run Rack::URLMap.new("/" => Frontend.new,
"/api" => Api.new)
आप अंगूर README से ट्विटर एपीआई उदाहरण जोड़ना चाहते थे, तो: 2 सिनात्रा एप्लिकेशन का उपयोग कर एक छोटा उदाहरण (लेकिन वे रैक क्षुधा के किसी भी प्रकार के किसी भी संख्या हो सकता है) उम्मीद है कि आपको शुरू करने के लिए पर्याप्त है। एक बार जब आप जानते हैं कि कहां देखना है तो कई उदाहरण हैं। आप use
(http://www.sinatrarb.com/intro#Rack%20Middleware देखें) का उपयोग करके सिनात्रा ऐप के अंदर अन्य ऐप्स भी चला सकते हैं (और देखें कि अंगूर mount
कीवर्ड भी प्रदान करता है। बहुत से तरीके उपलब्ध हैं, जो पहले थोड़ा उलझन में हो सकते हैं, लेकिन बस उन्हें आज़माएं और देखें कि वे क्या करते हैं और आपको सबसे अच्छा क्या लगता है। इसका एक बड़ा हिस्सा प्राथमिकता है, इसलिए सही महसूस करने के साथ डरो मत। एक सिनात्रा मेरा मानना है कि यह ऐसा ही कुछ हो जाएगा "अंदर"
class App < Sinatra::Base
use Twitter::API
# other stuff…
end
# config.ru
# instead of URLMap…
map "/" do
run App
end
एक अंगूर अनुप्रयोग के साथ अनुप्रयोग: रूबी कंप्यूटर की तुलना में अधिक मानव :)
संपादित करने के लिए है।
हैलो आपके उत्तर के लिए धन्यवाद। मैं इस विधि का उपयोग कैसे कर सकता हूं लेकिन मेरे एपीआई को रूट से भी चलाया जा सकता है? –
@ क्रिस्टियन रिवरा मैंने एक उदाहरण जोड़ा है I _believe_ यह कैसे किया जाएगा। यह अन्य रैक ऐप्स और सिनात्रा के साथ काम करेगा। – iain
नमस्ते मैंने आपके सुझावों का प्रयास किया और मुझे अपने ब्राउज़र में "आंतरिक सर्वर त्रुटि" मिली, मुझे सर्वर लॉग में मिला "!! अनुरोध संसाधित करते समय अप्रत्याशित त्रुटि: तर्कों की गलत संख्या (0 के लिए 1)" –
- 1. {अंगूर} प्राधिकरण
- 2. अपलोड हो रही फ़ाइल अंगूर के साथ और paperclip
- 3. सिनात्रा
- 4. सिनात्रा
- 5. सिनात्रा के साथ देवता
- 6. सिनात्रा के साथ एक नियंत्रक विधि और rspec
- 7. रैक :: टेस्ट और सिनात्रा
- 8. एक सिनात्रा ऐप
- 9. सिनात्रा और http डाल
- 10. सिनात्रा
- 11. सिनात्रा
- 12. सिनात्रा
- 13. सिनात्रा
- 14. सिनात्रा
- 15. सिनात्रा
- 16. एक सिनात्रा एप्लिकेशन
- 17. सिनात्रा
- 18. हेडर के साथ सिनात्रा स्ट्रीमिंग प्रतिक्रिया
- 19. सिनात्रा
- 20. सिनात्रा और रैक संरक्षण सेटिंग
- 21. सिनात्रा और रूबी के साथ मुद्दे 1.9.2 शॉटगन
- 22. एक मणि में सिनात्रा ऐप
- 23. कौन सी लाइब्रेरी सिनात्रा
- 24. सिनात्रा मार्ग
- 25. रैक :: सत्र :: सिनात्रा के साथ पूल
- 26. सिनात्रा ऐप
- 27. रूबी सिनात्रा
- 28. सिनात्रा ऐप जो पैरामीटर
- 29. सिनात्रा आवेदन
- 30. सिनात्रा स्थितियां
मैं [इस] (http://www.slideshare.net/yorzi/rapid-rubyapiongrape-8674582) में आया, जो शायद थोड़ा उपयोगी हो सकता है – SMT