2013-04-12 4 views
7

मेरे पास एक आरईएसटी एपीआई है जो एक बड़े संसाधन, ग्राहकों से संबंधित है। ग्राहक कभी-कभी किसी ग्राहक का संक्षेप/संक्षिप्त प्रतिनिधित्व चाहता है। यह निर्दिष्ट करने का एक अच्छा तरीका क्या होगा कि अनुरोध सारांश प्रतिनिधित्व के लिए है?आरईएसटी एपीआई में सबसे अच्छा तरीका?

ग्राहक 123 के लिए एक पूर्ण प्रतिनिधित्व प्राप्त करने के लिए अपने: /customers/123

एक सारांश प्रतिनिधित्व /customers/123/summary एक अच्छा तरीका है प्राप्त करने के लिए? क्या बेहतर विकल्प हैं?

उत्तर

4

अपना समाधान पुन: प्रयोज्य और लचीला बनाने के लिए, मैं एक "फ़िल्टर" क्वेरी पैरामीटर को लागू करने का सुझाव दूंगा। वहाँ में, आप ग्राहक के लिए आवश्यक किसी भी फ़ील्ड रख सकते हैं: बाद में आप एक अलग कार्य के लिए एक अलग सारांश बनाने की जरूरत है, तो इस तरह

GET /customers/123?fields=id,first_name,last_name,email 

, आप को संशोधित करने के लिए कुछ भी नहीं होगा।

मैं /customers/123/summary की अनुशंसा नहीं करता क्योंकि यह लचीला नहीं है। यह एक मामले के लिए ठीक हो सकता है, लेकिन यदि ग्राहक को किसी भिन्न मामले के लिए अलग-अलग गुणों तक पहुंचने की आवश्यकता है, तो आपको संसाधन को ट्विक करना होगा (अधिकतर आवश्यकतानुसार अधिक फ़ील्ड लौटकर)।

GET /customers/123?view=DESCRIPTION 

कहाँ "DESCRIPTION" सारांश के प्रकार का वर्णन होगा: आप फ़ील्ड नाम "छिपाने" चाहते हैं, शायद एक विकल्प के कुछ इस तरह हो सकता है। उदाहरण के लिए:

GET /customers/123?view=addresses_only // eg. returns billing and home address 
GET /customers/123?view=short // eg. returns only id, first name, last name 

यह अभी भी लचीला है क्योंकि आप आसानी से नए विचार बना सकते हैं।

+0

सुझाव के लिए धन्यवाद और मैं देख सकता हूं कि यह कैसे लचीला है। मेरे पास इस दृष्टिकोण के साथ एक चिंता है, यह मानता है कि उपभोक्ता ग्राहक संसाधन के लिए उपलब्ध फ़ील्ड जानता है। – BobJ

+0

दोनों मामलों में, चाहे वह/सारांश या /? फ़ील्ड = ..., आपको अभी भी क्लाइंट के साथ एक यूआरएल साझा करने की आवश्यकता होगी। यदि आप उन्हें केवल यूआरएल देते हैं तो उन्हें उपलब्ध फ़ील्ड जानने की जरूरत नहीं है। मैंने अपनी पोस्ट को एक और संभावित समाधान के साथ अपडेट किया है। –

+0

धन्यवाद मुझे पसंद है? व्यू = लघु दृष्टिकोण – BobJ

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