আমি একটি বাস্তববাদী REST এপিআই ডিজাইন করছি এবং কোনও সংকলনে বিদ্যমান সত্ত্বাগুলি কীভাবে যুক্ত করা যায় তা সম্পর্কে আমি কিছুটা আটকেছি। আমার ডোমেন মডেলটিতে এমন একটি প্রকল্প অন্তর্ভুক্ত রয়েছে যাতে সাইটের সংগ্রহ রয়েছে। এটি বহু-থেকে-বহুবার কঠোর সম্পর্ক এবং আমার কোনও সত্তা তৈরি করার দরকার নেই যা স্পষ্টভাবে সম্পর্কের মডেল তৈরি করে (অর্থাত্ প্রোজেক্টসাইট)।
আমার এপিআই গ্রাহকদের একটি প্রকল্পে একটি বিদ্যমান সাইট যুক্ত করার অনুমতি দেবে। যেখানে আমি স্তব্ধ হয়ে যাচ্ছি তা হ'ল আমার কেবলমাত্র ডেটা হ'ল প্রজেক্টআইডি এবং সাইটআইডি। আমার প্রাথমিক ধারণাটি ছিল:
1. POST myapi/projects/{projectId}/sites/{siteId}
তবে আমিও ভেবেছিলাম
2. POST myapi/projects/{projectId}/sites
JSON সামগ্রী হিসাবে প্রেরিত সাইট সত্তা সহ
বিকল্প 1 সহজ এবং কাজ করে তবে বেশ সঠিক মনে হয় না এবং আমার অন্যান্য সম্পর্কও রয়েছে যা এই প্যাটার্নটি অনুসরণ করতে পারে না তাই এটি আমার API এ অসঙ্গতি যুক্ত করে।
বিকল্প 2 আরও ভাল বোধ করে তবে দুটি উদ্বেগের দিকে নিয়ে যায়:
- যদি কোনও নতুন সাইট পোস্ট করা হয় (সাইটআইডি = 0) তবে আমার কোনও সাইট তৈরি করা উচিত বা একটি ব্যতিক্রম ছুঁড়ে দেওয়া উচিত?
- যেহেতু সম্পর্ক তৈরি করার জন্য আমার কেবল প্রজেক্টআইডি এবং সাইটআইডের প্রয়োজন তাই সাইটটি অন্য সম্পত্তিগুলির জন্য ভুল বা হারিয়ে যাওয়া ডেটা দিয়ে পোস্ট করা যেতে পারে।
তৃতীয় বিকল্পটি হ'ল সম্পর্ক তৈরি এবং মুছে ফেলার জন্য একটি সহজ শেষ পয়েন্ট সরবরাহ করা। এই শেষ বিন্দুতে কেবল প্রজেক্টআইডি এবং সাইটআইডযুক্ত একটি জেএসএন পে-লোড আশা করবে।
আপনি কি মনে করেন?