उदाहरण के लिए मेरे पास संस्थाएं हैं: ग्राहक, रिपोर्ट। क्लाइंट के पास कई रिपोर्ट हो सकती हैं और मुझे लगता है कि एकल रिपोर्ट प्रबंधन के लिए समापन बिंदु इस तरह से होना चाहिए:
/clients/{client_id}/reports/{report_id}
एक ग्राहक की सभी रिपोर्टों के लिए जैसा कि उम्मीद की जाती है:
/clients/{client_id}/reports
लेकिन एपीआई को सुसंगत और अच्छी तरह से डिज़ाइन करने के लिए सभी ग्राहकों की सभी रिपोर्ट प्राप्त करने के लिए एक समापन बिंदु कैसे दिखना चाहिए।
मेरा दृष्टिकोण:
- (मैंने इसे कुछ google api में देखा) उपयोग "-" इसके बजाय और इसे "सभी" के रूप में पार्स करें
/clients/-/reports
यह एंडपॉइंट प्रारूप को समान रखता है, लेकिन थोड़ा असामान्य दिखता है, इस तरह से सुझाव देने वाले किसी भी आरएफसी को नहीं पा सकता है।
- सभी रिपोर्टों के लिए एक अलग समापन बिंदु बनाएं:
/reports
लेकिन ग्राहक की रिपोर्ट प्राप्त करने के लिए यह अभी भी है:
/clients/{client_id}/reports
- रिफैक्टर एंडपॉइंट को "क्लाइंट" बनाने के लिए अभिभावक नहीं, बल्कि एक फ़िल्टर पैरामीटर:
/reports?client={client_id}
- एक ग्राहक की रिपोर्ट
/reports
- सभी क्लाइंट की रिपोर्ट
किसी विशिष्ट क्लाइंट के लिए एक रिपोर्ट पोस्ट करने के लिए एक नया समापन बिंदु जोड़ने के मामले में, यह बदसूरत लग सकता है, क्योंकि यह URL में एक पैरामीटर के साथ एक POST-request होगा।
क्या विचारों का कोई और सुझाव है?