আমি একটি সংগ্রহের পাইকারি প্রতিস্থাপনের অনুমতি দিয়েছি, যেমন PUT ~/people/123/shoesশরীরটি পুরো সংগ্রহের প্রতিনিধিত্ব করে।
এটি আইটেমগুলির ছোট শিশু সংগ্রহের জন্য কাজ করে যেখানে ক্লায়েন্ট একটি আইটেম পর্যালোচনা করতে এবং কিছু ছাঁটাই করতে এবং কিছু অন্যকে যুক্ত করতে এবং তারপরে সার্ভার আপডেট করতে চায়। সমস্ত মুছে ফেলার জন্য তারা একটি খালি সংগ্রহ রাখতে পারে।
এর অর্থ GET ~/people/123/shoes/9হ'ল এখনও একটি ক্যাশে থাকবে যদিও একটি পুট এটি মুছে ফেলেছে, তবে এটি কেবল একটি ক্যাশিংয়ের সমস্যা এবং যদি অন্য কোনও ব্যক্তি জুতো মুছে ফেলেন তবে সমস্যা হবে।
আমার ডেটা / সিস্টেম এপিআইগুলি সর্বদা মেয়াদোত্তীর্ণের বিপরীতে ETags ব্যবহার করে যাতে প্রতিটি অনুরোধে সার্ভারটি হিট হয় এবং ডেটাটি পরিবর্তনের জন্য আমার সঠিক সংস্করণ / সম্মতি শিরোনাম প্রয়োজন। কেবলমাত্র পঠনযোগ্য এবং দেখা / প্রতিবেদনের প্রান্তিকরূপিত এপিআইগুলির জন্য, আমি উত্সের উপরের হিটগুলি কমাতে মেয়াদোত্তীর্ণ সময় ব্যবহার করি, যেমন লিডারবোর্ড 10 মিনিটের জন্য ভাল হতে পারে।
অনেক বড় সংগ্রহের জন্য, যেমন ~/peopleআমার একাধিক মুছার প্রয়োজন হয় না, ব্যবহারের ক্ষেত্রে স্বাভাবিকভাবেই উত্থাপিত হয় না এবং তাই একক মুছে ফেলা ভাল কাজ করে।
ভবিষ্যতে এবং আরএসটি এপিআই তৈরির অভিজ্ঞতা এবং একই সমস্যা এবং প্রয়োজনীয়তার সাথে নিরীক্ষণের মতো হিট করার অভিজ্ঞতা থেকে আমি কেবল জিইটি এবং পোষ্ট ক্রিয়া এবং ইভেন্টগুলির চারপাশে নকশা ব্যবহার করতে আগ্রহী, যেমন ঠিকানা ইভেন্টের একটি পরিবর্তন পোস্ট করুন, যদিও আমার সন্দেহ 'সমস্যাগুলির নিজস্ব সেট নিয়ে আসব :)
আমি ফ্রন্ট-এন্ড ডেভসকে তাদের নিজস্ব এপিআইগুলি তৈরি করার অনুমতি দেব যা কঠোর ব্যাক-এন্ড এপিআই ব্যবহার করে যেহেতু প্রায়শই ব্যবহারিক, বৈধ ক্লায়েন্ট-সাইড কারণে তারা কঠোর "ফিল্ডিং জিলিয়ট" আরএসটি এপিআই ডিজাইন পছন্দ করে না এবং উত্পাদনশীলতার জন্য এবং ক্যাশে লেয়ারিং কারণ।