2009-02-05 15 views
21

मैं एक विशेष वेब सेवा द्वारा प्रदान की गई एक आरईएसटी-शैली एपीआई को लपेटने के लिए एक पायथन लाइब्रेरी लिखना चाहता हूं। क्या किसी को इस तरह के काम के लिए किसी भी अच्छे शिक्षण संसाधनों के बारे में पता है, अधिमानतः मध्यवर्ती पायथन प्रोग्रामर के उद्देश्य से?हाउटो: पायथन एपीआई रैपर लिखें?

मुझे इस विषय पर एक अच्छा लेख चाहिए, लेकिन मैं अच्छे, स्पष्ट कोड उदाहरणों के लिए बसूंगा।

स्पष्टीकरण: मुझे क्या करना देख रहा हूँ एक वेब सेवा के साथ बातचीत करने के लिए एक अजगर ग्राहक लिखना है - HTTP अनुरोध का निर्माण और XML/JSON प्रतिक्रियाओं, सभी पायथन वस्तुओं में लिपटे पार्स करने के लिए कुछ।

+0

ऐसा लगता है जैसे आप टाइप करना चाहते हैं: 'app.users.john.name() 'और इसे यूआरएल' http://myapp.com/api/users पर जाना है/जॉन/नाम', और प्रतिक्रिया को समझते हैं? –

+0

क्या आप रुचि रखते हैं कि रीस्ट-स्टाइल एपीआई के शीर्ष पर पाइथन एपीआई कैसे डिज़ाइन किया जाए या इसे कैसे कार्यान्वित किया जाए? – jfs

+1

@ रिचर्ड, वह आरपीसी होगा, जो आरईएसटी नहीं है। आपके पास संसाधन यूआरआई या यूआरआई पैटर्न नहीं हो सकते हैं जो एक आरईएसटी एपीआई के साथ क्लाइंट में कोड किए गए हैं। इसे हाइपरटेक्स्ट के माध्यम से यूआरआई खोजने की जरूरत है। वहां केवल 1 यूआरआई होना चाहिए जो कड़ी कोडित है, सेवा के लिए प्रवेश बिंदु। अन्यथा आप आरईएसटी की बाधा का उल्लंघन करते हैं और यह बस युग्मन के साथ आरपीसी है। – aehlke

उत्तर

3

मैं आपको यह करने के तरीके पर किसी भी लेख पर इंगित नहीं कर सकता, लेकिन मुझे लगता है कि कुछ पुस्तकालय हैं जो आपके खुद के डिजाइन के तरीके पर अच्छे मॉडल हो सकते हैं। उदाहरण के लिए

PyAws। मुझे स्रोत कोड नहीं मिला, इसलिए मैं आपको यह नहीं बता सकता कि यह कोड उदाहरण के रूप में कितना अच्छा है, लेकिन उनकी वेबसाइट में सुविधाओं और उपयोग उदाहरण उपयोगी डिजाइन मॉडल

Universal Feed Parser एक रैपर नहीं है webservice (यह एक आरएसएस पार्सर लाइब्रेरी है), लेकिन यह एक ऐसे डिज़ाइन का एक शानदार उदाहरण है जो उपयोग लचीलापन को प्राथमिकता देता है और कार्यान्वयन विवरण छुपाता है। मुझे लगता है कि आप वहां अपने रैपर के लिए बहुत अच्छे उपयोग विचार प्राप्त कर सकते हैं।

+0

फीडपार्सर वास्तव में अच्छा लग रहा है। – jfs

2

मेरा पसंदीदा संयोजन httplib2 (या प्रदर्शन के लिए pycurl) और simplejson है। चूंकि आरईएसटी "डिजाइन का एक तरीका" है, तो एक वास्तविक "प्रोटोकॉल" वास्तव में एक पुन: प्रयोज्य चीज़ नहीं है (जिसे मैं जानता हूं)। रूबी पर आपके पास ActiveResource की तरह कुछ है। और ईमानदार होने के लिए, यहां तक ​​कि केवल कुछ टेबलों को वेबसाइज के रूप में उजागर किया जाएगा, जबकि एक्सएमएल/जेसन की शक्ति यह है कि वे "विचार" की तरह हैं जिनमें आपके एप्लिकेशन के लिए अनुकूलित कई ऑब्जेक्ट्स हो सकते हैं। मुझे उम्मीद है कि यह समझ में आता है :-)

+0

सही, कुछ भी पुन: प्रयोज्य नहीं है, क्योंकि आरईएसटी एक वास्तुकला है। – aehlke

+0

और भी सटीक होने के लिए, आरईएसटी "वेब आर्किटेक्चर बनाने का एक तरीका है" - उर्फ, मेटा-आर्किटेक्चर – csparpa

1

This tutorial page एक अच्छी प्रारंभिक जगह हो सकती है (लेकिन इसमें आपको जो भी चाहिए वह शामिल नहीं है)।

0

आपको PyFacebook पर एक नज़र रखना चाहिए। यह फेसबुक एपीआई के लिए एक अजगर रैपर है, और यह अब तक का सबसे अच्छा किया गया एपीआई है।

0

आप pythenic jobs चेकआउट कर सकते हैं, एक अच्छा, सरल, लेकिन अच्छी तरह से गठित "प्रामाणिक नौकरियों के आसपास पाइथन रैपर ... एपीआई" एक अच्छा उदाहरण के रूप में। यही वह है जो मैं अब कर रहा हूं :)

संबंधित मुद्दे