मैं एक व्यावहारिक REST API डिज़ाइन कर रहा हूं और एक संग्रह में मौजूदा संस्थाओं को जोड़ने के लिए सबसे अच्छा पर थोड़ा अटक गया हूं। मेरे डोमेन मॉडल में एक परियोजना शामिल है जिसमें साइटों का एक संग्रह है। यह एक सख्त कई-से-कई संबंध है और मुझे एक इकाई बनाने की कोई आवश्यकता नहीं है जो स्पष्ट रूप से संबंध (यानी प्रोजेक्टसाइट) को मॉडल करता है।
मेरा एपीआई उपभोक्ताओं को एक परियोजना में एक मौजूदा साइट जोड़ने की अनुमति देगा। जहां मैं लटका हुआ हूं, केवल वही डेटा है जिसकी मुझे वास्तव में जरूरत है ProjectId और SiteId। मेरा प्रारंभिक विचार था:
1. POST myapi/projects/{projectId}/sites/{siteId}
लेकिन मैंने भी सोचा
2. POST myapi/projects/{projectId}/sites
JSON सामग्री के रूप में भेजी गई साइट इकाई के साथ।
विकल्प 1 सरल है और काम करता है, लेकिन यह बिल्कुल सही नहीं लगता है, और मेरे पास अन्य रिश्ते हैं जो इस पैटर्न का पालन नहीं कर सकते हैं, इसलिए यह मेरे एपीआई में असंगतता जोड़ता है।
विकल्प 2 बेहतर लगता है लेकिन दो चिंताओं की ओर जाता है:
- यदि एक नई साइट पोस्ट की गई है तो क्या मुझे एक साइट बनानी चाहिए या एक अपवाद फेंकना चाहिए (SiteId = 0)?
- क्योंकि मुझे संबंध बनाने के लिए केवल ProjectId और SiteId की आवश्यकता है, साइट को अन्य गुणों के लिए गलत या अनुपलब्ध डेटा के साथ पोस्ट किया जा सकता है।
एक 3 विकल्प केवल संबंध बनाने और हटाने के लिए एक सरल समापन बिंदु प्रदान करना है। यह एंडपॉइंट एक JSON पेलोड की उम्मीद करेगा जिसमें सिर्फ ProjectId और SiteId होंगे।
तुम क्या सोचते हो?