আমি {id}
URL হিসাবে উপ-সংস্থানগুলির সাথে ওভারল্যাপের অংশটি দেখতে পছন্দ করি নাid
তাত্ত্বিকভাবে কিছু হতে পারে এবং অস্পষ্টতা থাকতে পারে বলে । এটি বিভিন্ন ধারণার (শনাক্তকারী এবং উপ-সংস্থান নাম) মিশ্রণ করছে।
একই সমস্যা প্রায়ই দেখা যায় enum
ধ্রুবক বা কাঠামো, যেখানে বিভিন্ন ধারণা উদাহরণস্বরূপ মিশ্র (হয় ফোল্ডারের, আপনি ফোল্ডার আছে Tigers
, Lions
এবং Cheetahs
, এবং তারপর আরো একটি ফোল্ডার নামকAnimals
একই পর্যায়ে - এই কোন মানে হিসাবে একটি উপসেট করে তোলে অন্যান্য)।
সাধারণভাবে আমি মনে করি একটি প্রান্তের পয়েন্টের শেষ নাম্বার অংশটি একবচন হওয়া উচিত যদি এটি কোনও সময়ে একটি একক সত্তার সাথে সম্পর্কিত হয়, এবং বহুগুণে যদি এটি সত্ত্বার তালিকার সাথে সম্পর্কিত হয়।
সুতরাং শেষ পয়েন্টগুলি যে কোনও একক ব্যবহারকারীর সাথে ডিল করে:
GET /user -> Not allowed, 400
GET /user/{id} -> Returns user with given id
POST /user -> Creates a new user
PUT /user/{id} -> Updates user with given id
DELETE /user/{id} -> Deletes user with given id
তারপরে ব্যবহারকারীদের অনুসন্ধান করার জন্য পৃথক সংস্থান রয়েছে যা সাধারণত একটি তালিকা ফেরত দেয়:
GET /users -> Lists all users, optionally filtered by way of parameters
GET /users/new?since=x -> Gets all users that are new since a specific time
GET /users/top?max=x -> Gets top X active users
এবং এখানে একটি সাব-রিসোর্সের কয়েকটি উদাহরণ যা একটি নির্দিষ্ট ব্যবহারকারীর সাথে আচরণ করে:
GET /user/{id}/friends -> Returns a list of friends of given user
একটি বন্ধু তৈরি করুন (অনেকগুলি লিঙ্কে অনেকগুলি):
PUT /user/{id}/friend/{id} -> Befriends two users
DELETE /user/{id}/friend/{id} -> Unfriends two users
GET /user/{id}/friend/{id} -> Gets status of friendship between two users
কখনও কোনও অস্পষ্টতা নেই, এবং সংস্থানটির বহুবচন বা একক নামকরণটি ব্যবহারকারীরা কী আশা করতে পারে তার তালিকা (তালিকা বা অবজেক্ট)। এর উপর কোনও বিধিনিষেধ নেই id
, তাত্ত্বিকভাবে আইডি দিয়ে কোনও ব্যবহারকারীর new
(সম্ভাব্য ভবিষ্যত) উপ-সংস্থান নামটি ওভারল্যাপিং না করেই সম্ভব করে তোলে ।