2010-11-20 12 views
9

जब आप Django में अपने Django प्रोजेक्ट को "पुनः सत्यापित" करना चाहते हैं तो आप क्या पसंद करते हैं?Django परियोजनाओं/ऐप्स के लिए RESTful APIs

:

मैं निष्कर्ष वहाँ वास्तव में तीन विकल्प है कि ऐसा करने के लिए कर रहे हैं कि के लिए आया था

मेरे लिए ऐसा करने का सही तरीका सभी के लिए प्रयास करना होगा और मेरे लिए सबसे अच्छा विकल्प चुनना होगा, इसलिए मैं तुम्हारा सुनना चाहता हूं ...

धन्यवाद।

उत्तर

7

मैं django-piston से सबसे परिचित हूं, इसलिए मैं स्वाभाविक रूप से उस दिशा में आपको स्टीयर कर दूंगा।

अन्य दो में एक त्वरित नज़र, हालांकि, इंगित करता है कि django-rest-interface संसाधनों के रूप में मॉडल का पर्दाफाश करने से कहीं ज्यादा कुछ नहीं करता है, और यह कि django-restful-Resources कुछ लड़के का एक-एक प्रयास है।

पिस्टन, अगर मैं सही ढंग से याद करता हूं, bitbucket.org के स्वयं के साइट विकास से बढ़ गया है, और बहुत लचीलापन की अनुमति देता है - आप केवल अपने मॉडल के उपयोग विधियों से किसी ऑब्जेक्ट को वापस नहीं कर सकते हैं, न केवल मॉडल के उदाहरणों से, और यह ठीक से होगा इनकोडिंग। इसमें कुछ अच्छी सुविधाओं के लिए अंतर्निहित समर्थन भी है, जैसे फ़ॉर्म सत्यापन (यदि आप इसे सही तरीके से काम करने के लिए प्राप्त कर सकते हैं) और अन्य चीजों के साथ थ्रॉटलिंग का अनुरोध करते हैं।

+0

आपके उत्तर के लिए धन्यवाद। – Ali

3

"कुछ लड़के" के रूप में जिन्होंने django-restful-resource लिखा था, मैं स्पष्ट करना चाहता हूं कि यह क्यों मौजूद है। यह मॉडलों को संसाधनों के रूप में बेनकाब करने का प्रयास नहीं है, बल्कि यह एक ही यूआरएल को विभिन्न हैंडलर विधियों में से एक को मैप करने की अनुमति देने का माध्यम है, एक प्रति HTTP क्रिया। बस इतना ही। इसका उपयोग मॉडल ऑब्जेक्ट्स का पर्दाफाश करने के लिए किया जा सकता है, लेकिन इसका उपयोग संसाधनों या किसी अन्य URL के रूप में सेवाओं को बेनकाब करने के लिए भी किया जा सकता है, जिसे आप एक यूआरएल और HTTP क्रियाओं के माध्यम से बातचीत करना चाहते हैं। यदि आप अधिक पूर्ण-विशेषीकृत समाधान की तलाश में हैं तो हर तरह से पिस्टन के साथ जाएं।

+0

हाय टॉम, समय लेने और इस प्रश्न का उत्तर देने के लिए धन्यवाद। क्या आप मुझे HTTP क्रिया-वस्तु के बारे में बता सकते हैं? धन्यवाद। – Ali

+2

हाय ऊंचा, HTTP क्रियाएं (या HTTP विधियां) प्राप्त, पोस्ट, पुट, हेड, डिलीट, विकल्प और ट्रेक हैं। आप निम्न लिंक पर रीस्टफुल वेब सेवाओं को लिखने के लिए उनका उपयोग करने के तरीके का वास्तव में अच्छा विवरण प्राप्त कर सकते हैं: - http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html - http: // www। amazon.com/REST- अभ्यास- हाइपरमीडिया- सिस्टम- आर्किटेक्चर/डीपी/056805829 - http://watchitlater.com/blog/2009/11/http-method-primer-for-restful-web-services/ (लापरवाही प्लग) – Tom

2

जैसा कि अनंतिकोड द्वारा उल्लेख किया गया है, django-piston उत्कृष्ट है। यह परिपक्व, अच्छी तरह से फीचर्ड है और इसके पीछे एक अच्छा समुदाय है। ऐसा लगता है कि इस समय बहुत अधिक विकासशील विकास की कमी है, हालांकि एक समुदाय संचालित कांटा की बात है, जिससे यह बदल सकता है।

django-tastypie भी एक लुक के लायक है, और इस समय इसके पीछे बहुत उत्साह दिखता है।

मैंने अभी भी एक और विकल्प जारी किया है जो विचार करने योग्य है: django-rest-frameworkAPI auto-documentation जैसे इसके पीछे कुछ वाकई अच्छी विशेषताएं हैं।

यह सेवरियो द्वारा उल्लिखित डीजेगो 1.3 के वर्ग आधारित विचारों का उपयोग करता है, जिसका अर्थ यह है कि आप ढांचे का उपयोग किए बिना कुछ मिक्सइन कक्षाओं में बस इसे छोड़ सकते हैं।

5
Django 1.3 में नया वर्ग आधारित सामान्य दृश्यों के साथ

(उदाहरण के adding HTTP content negotiation for serializing output to multiple types के लिए) यह सुपर आसान कस्टम serializers और deserializers साथ अपने स्वयं के बाकी इंटरफ़ेस को लागू करने, लगभग पूरा हो गया पिस्टन के कार्यान्वयन नकल सिर्फ स्टॉक कोड का उपयोग किया जाएगा। मैंने जेनेरिक रीस्टफुल रिसोर्स क्लास और उप संसाधनों, एसोसिएशन के लिए प्राकृतिक कुंजी समर्थन, जेसन और एक्सएमएल सीरियलाइजेशन आदि के साथ कोड की 500 लाइनों में एक दृश्य (1.3)-आधारित आराम मॉड्यूल बनाया।मॉड्यूल वास्तव में मेरे ऐप की आवश्यकताओं पर आधारित है

मैंने इसे पिस्टन के कोड में कुछ सीमाओं को दूर करने के लिए किया था, जैसे हैंडलर कॉलिंग से पहले एक क्वेरी सेट संशोधित (उदाहरण के साथ .values ​​(...)) .get () उस पर, या serialization में एक मॉडल की विधि का उपयोग करने में सक्षम नहीं है।

यदि आप इसे करने की आवश्यकता के अनुसार ऐसा करते हैं, तो कुछ दिनों में आपके पास कक्षाओं और मिश्रणों का एक कार्य सेट होगा, जो आप पूरी तरह से समझेंगे और नियंत्रण में रहेंगे।

+0

आप http://github.com/rewritten पर अपने स्वयं के शांतिपूर्ण विचारों को आजमा सकते हैं। इसका पूरी तरह से परीक्षण नहीं किया गया है और इसमें कुछ और आंखें प्राप्त करना अच्छा हो सकता है। – rewritten

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