जब आप REST API के अनुरोध भाग में कस्टम HTTP हेडर का उपयोग करते हैं?
उदाहरण:
क्या आप कभी उपयोग करेंगे?
GET /orders/view
(custom HTTP header) CLIENT_ID: 23
के बजाय
GET /orders/view/client_id/23 or
GET /orders/view/?client_id=23
जब आप REST API के अनुरोध भाग में कस्टम HTTP हेडर का उपयोग करते हैं?
उदाहरण:
क्या आप कभी उपयोग करेंगे?
GET /orders/view
(custom HTTP header) CLIENT_ID: 23
के बजाय
GET /orders/view/client_id/23 or
GET /orders/view/?client_id=23
जवाबों:
URL संसाधन को इंगित करता है। एक "क्लाइंट" एक ऐसा संसाधन है जिस पर काम किया जा सकता है, इसलिए बेस यूआरएल का हिस्सा होना चाहिए /orders/view/client/23
:।
पैरामीटर बस हैं, संसाधन तक पहुंच को पैरामीटर करने के लिए। यह विशेष रूप से पदों और खोजों के साथ खेलने में आता है /orders/find?q=blahblah&sort=foo
:। मापदंडों और उप-संसाधनों के बीच एक ठीक रेखा है /orders/view/client/23/active versus /orders/view/client/23?show=active
:। मैं खोजों के लिए उप-संसाधन शैली और आरक्षित मापदंडों की सिफारिश करता हूं।
चूंकि प्रत्येक समापन बिंदु एक राज्य हस्तांतरण का प्रतिनिधित्व करता है (mnemonic को नियंत्रित करने के लिए), कस्टम हेडर का उपयोग केवल उन चीजों के लिए किया जाना चाहिए जिसमें संसाधन (url), संसाधन की स्थिति (निकाय), या सीधे मापदंडों का नाम शामिल नहीं है संसाधन (मापदंडों) को प्रभावित करना। कस्टम हेडर के अनुरोध के बारे में सही मेटाडेटा छोड़ देता है।
HTTP में हेडर का एक बहुत विस्तृत चयन है जो आपके लिए आवश्यक सभी चीजों को कवर करता है। मैंने देखा है कि कस्टम हेडर आते हैं, एक सिस्टम में सिस्टम अनुरोध के लिए एक उपयोगकर्ता की ओर से काम करता है। प्रॉक्सी सिस्टम उपयोगकर्ता को मान्य करेगा और X-User: userid
हेडर में " " जोड़ देगा और एंडपॉइंट को हिट करने के लिए सिस्टम क्रेडेंशियल्स का उपयोग करेगा। प्राप्त करने वाला सिस्टम यह पुष्टि करता है कि सिस्टम क्रेडेंशियल्स उपयोगकर्ता की ओर से कार्य करने के लिए अधिकृत हैं, फिर मान्य करें कि उपयोगकर्ता कार्रवाई करने के लिए अधिकृत है।
कस्टम हेडर के निम्नलिखित फायदे हैं:
मैं केवल एक कस्टम हेडर का उपयोग करूंगा जब मानक या सम्मेलन द्वारा जानकारी पास करने का कोई अन्य तरीका नहीं होगा। डैरेन 102 उस मूल्य को पारित करने के विशिष्ट तरीके की व्याख्या कर रहा है। कस्टम शीर्षकों का उपयोग करते हुए विशिष्ट पैटर्न कविता का उपयोग करके आपकी एपीआई बहुत अधिक अनुकूल होगी। यह कहने के लिए नहीं कि आपके पास उनका उपयोग करने के लिए कोई मामला नहीं होगा, बस यह होना चाहिए कि वे अंतिम उपाय हों और पहले से ही एचटीटीपी युक्ति द्वारा संभाला हुआ कुछ न हो।
आप कब उपयोग करते हैं ... एक HTTP एपीआई के अनुरोध हिस्से में HTTP हेडर?
प्रमाणीकरण: GUID , मूल प्रमाणीकरण, कस्टम टोकन, आदि। जैसे, मूल प्रमाणीकरण उपयोगकर्ता नाम / पासवर्ड के बजाय REST एपीआई के लिए एक गाइड टोकन के साथ
यदि आप पीसीआई-डीएसएस या अन्य सुरक्षा नियमों द्वारा कवर किए गए डोमेन के बीच टोकन या अन्य प्रमाणीकरण जैसी जानकारी प्राप्त करने में शामिल हो जाते हैं, तो आपको मापदंडों को भी दफन करना पड़ सकता है क्योंकि कुछ नियमों को स्पष्ट रूप से URL से बाहर रहने के लिए प्रमाणीकरण तत्वों की आवश्यकता होती है, जिन्हें तुच्छ रूप से दोहराया जा सकता है (से) ब्राउज़र इतिहास, प्रॉक्सी लॉग, आदि)।
मैं कस्टम हेडर का उपयोग नहीं करूंगा क्योंकि आप नहीं जानते कि क्या कोई प्रॉक्सी उन पर से गुजरेगी। URL आधारित रास्ता तय करना है।
प्राप्त / आदेश / देखें / ग्राहक / 23
निश्चित रूप से ठीक है:
GET /orders/view/client_id/23 or
GET /orders/view/?client_id=23
यह भी ठीक है:
GET /orders/view/23 or
मुझे लगता है कि यह ठीक होगा, भी:
POST /orders/view
(custom HTTP header) CLIENT_ID: 23
आप आंशिक रूप से संसाधित अनुरोध के बारे में अधिक जानकारी शामिल करने के लिए कस्टम हेडर का उपयोग कर सकते हैं, यह देखते हुए कि एनवलिंग एक अच्छा अभ्यास नहीं है। हेडर सुरक्षित हैं ।