আমার একটি অবজেক্ট হাইয়ারার্কি রয়েছে যাতে আমার একটি RESTful API এর মাধ্যমে প্রকাশ করতে হবে এবং আমি নিশ্চিত না যে আমার ইউআরএলগুলি কীভাবে কাঠামোগত করা উচিত এবং সেগুলি কী ফিরিয়ে আনবে। আমি কোনও সেরা অনুশীলন খুঁজে পাইনি।
ধরা যাক আমার কাছে কুকুর এবং বিড়ালরা প্রাণীর কাছ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। কুকুর এবং বিড়ালের উপর আমার সিআরইউডি অপারেশন দরকার; আমি সাধারণভাবে প্রাণীগুলিতে অপারেশন করতে সক্ষম হতে চাই।
আমার প্রথম ধারণাটি এই জাতীয় কিছু করা ছিল:
GET /animals # get all animals
POST /animals # create a dog or cat
GET /animals/123 # get animal 123
জিনিসটি হ'ল / প্রাণী সংগ্রহগুলি এখন "বেমানান", কারণ এটি ফিরে আসতে পারে এবং ঠিক একই কাঠামোগুলি (কুকুর এবং বিড়াল) না থাকা জিনিসগুলি নিতে পারে। পৃথক বৈশিষ্ট্যযুক্ত কোনও সংগ্রহ ফেরত দেওয়া অবজেক্টগুলি রাখা কি "RESTful" হিসাবে বিবেচিত হয়?
আর একটি সমাধান হ'ল এইভাবে প্রতিটি কংক্রিটের জন্য একটি ইউআরএল তৈরি করা:
GET /dogs # get all dogs
POST /dogs # create a dog
GET /dogs/123 # get dog 123
GET /cats # get all cats
POST /cats # create a cat
GET /cats/123 # get cat 123
তবে এখন কুকুর এবং বিড়ালের মধ্যে সম্পর্ক নষ্ট হয়ে গেছে। যদি কেউ সমস্ত প্রাণী পুনরুদ্ধার করতে চায় তবে কুকুর এবং বিড়ালের উভয় সংস্থানই জিজ্ঞাসা করা উচিত। প্রতিটি নতুন প্রাণীর উপ টাইপের সাথে ইউআরএলগুলির সংখ্যাও বাড়বে।
আরেকটি পরামর্শ ছিল এটি যুক্ত করে দ্বিতীয় সমাধানটি বাড়ানো:
GET /animals # get common attributes of all animals
এই ক্ষেত্রে, ফিরে আসা প্রাণীগুলিতে কুকুর-নির্দিষ্ট এবং বিড়াল-নির্দিষ্ট বৈশিষ্ট্যগুলি বাদ দিয়ে কেবলমাত্র সমস্ত প্রাণীর মধ্যে সাধারণ বৈশিষ্ট্য থাকবে। এটি সমস্ত প্রাণীকে পুনরুদ্ধার করতে অনুমতি দেয়, যদিও খুব কম বিশদ সহ। প্রতিটি প্রত্যাবর্তিত অবজেক্টে বিশদ, কংক্রিট সংস্করণের লিঙ্ক থাকতে পারে।
কোন মন্তব্য বা পরামর্শ?