api - विक्रेता एमआईएम प्रकार(एपीआई संस्करण के लिए)



rest mime-types (1)

जैसा कि मैंने jsonapi.org मानक का पालन करने का निर्णय लिया है, मैंने यह तय करने का फैसला किया कि आपका उदाहरण क्या दिखाता है।

आपके प्रश्नों के बारे में:

  1. आपका एमआईएमई प्रकार पंजीकृत होना चाहिए
  2. मेरा मानना ​​है कि प्रत्येक संस्करण और प्रकार पंजीकृत होना चाहिए, क्योंकि वे अद्वितीय प्रकार हैं
  3. x- उपसर्ग को एक टिप्पणी में उल्लिखित के रूप में बहिष्कृत कर दिया गया है
  4. application/json-v2 मान्य नहीं होगा
  5. आप 415 Unsupported Media Type या बस 400 Bad Request वापस कर सकते हैं

मैंने रीस्टफुल सेवाओं को वर्जनिंग पर कई स्टैक ओवरफ़्लो (और अन्य) पोस्ट पढ़ी हैं। यह ईमानदार होने के लिए थोड़ा जबरदस्त है।

मैंने एक स्वीकार्यता का उपयोग करने का निर्णय लिया है: हमारे (मामूली-) रीस्टफुल सेवा के लिए हेडर ताकि ग्राहक संसाधन के विशिष्ट संस्करणों का अनुरोध कर सकें। मैं स्पष्ट नहीं हूं कि स्वीकृति हेडर में क्या निर्दिष्ट करना है।

उदाहरण मैंने अक्सर देखा है यह है:

Accept: application/vnd.mycompany.myapp.customer-v2+json

मेरे प्रश्न हैं:

  1. क्या मैं सही हूं कि सभी vnd प्रकार पंजीकृत होना चाहिए? ( http://www.iana.org/cgi-bin/mediatypes.pl )

  2. क्या संस्करण और प्रकार (यानी -v2 + json) प्रकार का हिस्सा है और इसलिए प्रत्येक संस्करण और प्रकार को पंजीकृत करने की आवश्यकता होगी?

  3. क्या "x-" उपप्रकार के बजाय vnd का उपयोग करने का कोई कारण है जिसे पंजीकृत होने की आवश्यकता नहीं है? उदाहरण के लिए:

    Accept: application/x-mycompany.myapp-v2+json
    

    मौजूदा एपीआई केवल आंतरिक है, लेकिन भविष्य में यह ग्राहकों के सामने आ जाएगा।

  4. सुनिश्चित नहीं है कि यह समझ में आता है, लेकिन क्या मौजूदा प्रकार का उपयोग करना संभव है लेकिन एक संस्करण जोड़ें? (वर्तमान एपीआई "एप्लिकेशन / जेसन" देता है)

    Accept: application/json-v2
    
  5. एक संस्करण और प्रकार (उदाहरण के लिए -v2 + जेसन) जोड़ने के लिए स्वीकार्य प्रारूप क्या हैं।

  6. यदि कोई क्लाइंट गैर-समर्थित संस्करण मांगता है तो क्या होगा? क्या सही प्रतिक्रिया 406 है? क्या क्लाइंट किसी भी संस्करण का अनुरोध कर सकता है? या अधिक आम तौर पर, यदि ग्राहक कोई स्वीकार्य हेडर प्रदान नहीं करता है या स्वीकार करता है: * / *?

कोई अतिरिक्त सुझाव स्वागत है। लक्ष्य, निश्चित रूप से, किसी दिए गए संसाधन के लिए सेवा लौटने के लिए परिवर्तनों की अनुमति देना है, लेकिन मौजूदा ग्राहकों को तोड़ना नहीं है।

हाल ही में देखे गए संसाधनों की एक छोटी सूची यहां दी गई है:





mime-types