मान लीजिए कि मैं लोगों के लिए एक RESTful संसाधन रखना चाहता हूं, जहां क्लाइंट आईडी असाइन करने में सक्षम है।
एक व्यक्ति इस तरह दिखता है: {"id": <UUID>, "name": "Jimmy"}
अब, ग्राहक को कैसे बचाना चाहिए (या "PUT") इसे?
PUT /person/UUID {"id": <UUID>, "name": "Jimmy"}
- अब हमारे पास यह गंदा दोहराव है जिसे हमें हर समय सत्यापित करना होगा: क्या शरीर में आईडी पथ में मेल खाती है?- असममित प्रतिनिधित्व:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
रिटर्न{"id": <UUID>, "name": "Jimmy"}
- शरीर में कोई आईडी नहीं - केवल स्थान में आईडी:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
रिटर्न{"name": "Jimmy"}
POST
क्लाइंट द्वारा आईडी तैयार किए जाने के बाद से किसी भी तरह का कोई अच्छा विचार नहीं है।
इसे हल करने के सामान्य पैटर्न और तरीके क्या हैं? केवल स्थान पर आईडी ही सबसे हठधर्मी तरीके से सही लगती हैं, लेकिन यह व्यावहारिक कार्यान्वयन को भी कठिन बना देती है।