में एक वास्तविक एपीआई डिजाइनिंग में अद्वितीय जेनरेट आईडी बनाम जानकारीपूर्ण बनाम। मेरे पास संसाधनों (व्यक्ति डेटा) की पहचान करने के दो तरीके हैं। या तो डेटाबेस द्वारा उत्पन्न अद्वितीय आईडी, या एक सामाजिक सुरक्षा संख्या (एसएसएन) द्वारा, प्रत्येक व्यक्ति के लिए दर्ज किया गया। एसएसएन माना जाता है कि अद्वितीय है, हालांकि बदला जा सकता है।आरईएसटी एपीआई
आईडी का उपयोग करना मेरे लिए सबसे सुविधाजनक होगा, क्योंकि यह अद्वितीय होने की गारंटी है, और यह नहीं बदलेगा। एसएसएन का उपयोग कर के लिए
GET /persons/12
{
"name": Morgan
"ssn": "840212-3312"
}
तर्क यह है कि यह अधिक जानकारीपूर्ण और एपीआई ग्राहकों द्वारा समझा जा सकता है है: इसलिए यूआरएल संसाधन के लिए, यह भी हमेशा एक ही रहता है। एसएसएन भी आसपास के सिस्टम में अधिक प्रयोग किया जाता है:
GET /persons/840212-3321
{
"name": Morgan
"id": "12"
}
तो सवाल यह है: मैं पहली बार दृष्टिकोण के साथ जाना चाहिए, और कुछ कार्यान्वयन सिर दर्द जहां एसएसएन बदल सकते हैं से बचें। और शायद कुछ सहायक विधि प्रदान करें जो एसएसएन से आईडी में परिवर्तित हो जाती है?
या दूसरे दृष्टिकोण के साथ जाएं। एक अधिक जानकारीपूर्ण एपीआई प्रदान करना। हालांकि कुछ लोगों के साथ सौदा करने के लिए अजीब अजीबता नहीं है, जहां एसएसएन परिवर्तनों के कारण यूआरएल: बदल सकता है?
मैं यूआरएल में सहमत/खोज/जरूरी नहीं है और इसे छोड़कर क्लीनर है। मैंने इसे अपने उदाहरण में स्पष्टता के लिए जोड़ा क्योंकि यह न तो अच्छा है और न ही बुरा है।मुझे लगता है कि बहुवचन और एकवचन उन धार्मिक चीजों में से एक है, इस बात के आधार पर कि आपको अपने डीबी टेबल को एकल या बहुवचन नाम देना चाहिए, लेकिन यह निश्चित रूप से केवल वरीयता है। – Ray
हमम ... हमारी अंतर्दृष्टि के लिए कोई प्यार नहीं। मस्तिष्क के लिए आपको +1 करने वाला होगा। – Ray
@ रे मैंने एक मौजूदा परियोजना को संभाला और डेटाबेस टेबल पहले से ही बहुवचन में नामित किया गया था। जब मैंने यूआरआई स्पेस को (उदाहरण के लिए) '/ viewopenjobs.php' से'/jobs? Status = open 'में दोबारा हटा दिया, तो मैंने फ़ाइल नामों को छोटा कर दिया, इसलिए उन्होंने बहुवचन भी समाप्त कर दिया। –