मैं Django बाकी ढांचे में शुरुआत कर रहा हूं और आपकी सलाह की जरूरत है। मैं एक वेब सेवा विकसित कर रहा हूं। सेवा को अन्य सेवाओं के लिए REST इंटरफ़ेस प्रदान करना है। REST इंटरफ़ेस, जिसे मुझे लागू करने की आवश्यकता है, मेरे मॉडल के साथ सीधे काम नहीं कर रहा है (मेरा मतलब है कि गेट, पुट, पोस्ट, ऑपरेशन हटाएं)। इसके बजाय, यह कुछ गणना परिणामों के साथ अन्य सेवाएं प्रदान करता है। एक अनुरोध पर मेरी सेवा कुछ गणनाएँ करती है और बस परिणाम वापस करती है (परिणामों को अपने डेटाबेस में संग्रहीत नहीं करती है)।
नीचे मेरी समझ है कि REST इंटरफ़ेस कैसे लागू किया जा सकता है। अगर मैं ग़लत हूं तो मेरी गलती सुझाएं।
- वर्ग बनाएं जो गणना करता है। इसे 'CalcClass' नाम दें। CalcClass अपने काम में मॉडल का उपयोग करता है।
- गणनाओं के लिए आवश्यक परमिशन को कंस्ट्रक्टर को पास किया जाता है।
- कैल्क ऑपरेशन को लागू करें। यह 'परिणाम' के रूप में परिणाम देता है।
- ResultClass बनाएँ।
- वस्तु से व्युत्पन्न।
- यह सिर्फ calc परिणाम युक्त गुण है।
- कैल्क परिणामों के एक हिस्से को टुपल्स के ट्यूपल के रूप में दर्शाया गया है। जैसा कि मैं समझता हूं, आगे के क्रम के लिए बेहतर होगा कि उन परिणामों के लिए एक अलग वर्ग लागू करें और ऐसी वस्तुओं की सूची को ResultClass में जोड़ें।
- ResultClass के लिए Serializer बनाएं।
- धारावाहिक से व्युत्पन्न।
- कैल्क परिणाम केवल पढ़ने के लिए होते हैं, इसलिए विशेष कक्षाओं जैसे कि इंटेगरफिल्ड के बजाय खेतों के लिए ज्यादातर फील्ड क्लास का उपयोग करें।
- मुझे सेव () विधि को न तो ResultClass पर, न ही Serializer पर निहित करना चाहिए, क्योंकि मैं परिणामों को संग्रहीत नहीं करने जा रहा हूं (मैं केवल उन्हें अनुरोध पर वापस करना चाहता हूं)।
- नेस्टेड परिणामों के लिए इम्प्लांट सीरलाइज़र (ऊपर उल्लिखित टुपल्स को याद रखें)।
- गणना परिणाम वापस करने के लिए दृश्य बनाएं।
- एपीव्यू से व्युत्पन्न।
- बस जरूरत है ()।
- प्राप्त () में अनुरोध से प्राप्त परम के साथ कैलक्लास बनाएं, इसके कैल्क () को कॉल करें, ResultClass प्राप्त करें, Serializer बनाएं और इसके लिए ResultClass पास करें, Response (serializer.data) वापस करें।
- यूआरएल
- मेरे मामले में कोई आपी नहीं है। मेरे पास विभिन्न कैल्क परिणाम (अलग-अलग पैराम के साथ कैल्क) प्राप्त करने के लिए बस यूआरएल होना चाहिए।
- एपीआई ब्राउज़िंग के लिए कॉलिंग format_suffix_patterns जोड़ें।
क्या मैं कुछ भुल गया? क्या दृष्टिकोण सामान्य रूप से सही है?