আর বাকি রিসোর্স ঘোরা
(যা সত্য নয়, কারণ এটি প্রতিনিধিত্বমূলক, তবে এটি আরইএসটিতে রিসোর্সের গুরুত্ব স্মরণ করার জন্য একটি ভাল কৌশল)।
সম্পর্কে PUT /groups/api/v1/groups/{group id}/status/activate
: আপনি কোনও "অ্যাক্টিভেট" আপডেট করছেন না । "অ্যাক্টিভেট" জিনিস নয়, এটি একটি ক্রিয়াপদ। ক্রিয়াগুলি কখনই ভাল সংস্থান হয় না। থাম্বের একটি নিয়ম: যদি ক্রিয়া, একটি ক্রিয়াটি ইউআরএলটিতে থাকে তবে এটি সম্ভবত বিশ্রামের নয় ।
এর বদলে আপনি কি করছেন? হয় আপনি "যোগ" হয়, "সরানো হচ্ছে" বা "আপডেট" একটি অ্যাক্টিভেশন একটি গোষ্ঠীতে, অথবা যদি আপনি পছন্দ: একটি গোষ্ঠীতে একটি "স্থিতি" -resource কাজে লাগাতে হয়। ব্যক্তিগতভাবে, আমি "অ্যাক্টিভেশনস" ব্যবহার করব কারণ এগুলি "স্ট্যাটাস" ধারণাটির চেয়ে কম অস্পষ্ট: একটি স্ট্যাটাস তৈরি করা অস্পষ্ট, একটি অ্যাক্টিভেশন তৈরি করা নয়।
POST /groups/{group id}/activation
একটি অ্যাক্টিভেশন তৈরি করে (বা তৈরির অনুরোধ করে)।
PATCH /groups/{group id}/activation
বিদ্যমান অ্যাক্টিভেশন সম্পর্কিত কিছু বিবরণ আপডেট করে। যেহেতু একটি গোষ্ঠীর একটি মাত্র অ্যাক্টিভেশন রয়েছে, তাই আমরা জানি কী অ্যাক্টিভেশন-রিসোর্স আমরা উল্লেখ করছি।
PUT /groups/{group id}/activation
পুরানো সক্রিয়করণ সন্নিবেশ-বা-প্রতিস্থাপন করে। যেহেতু একটি গোষ্ঠীর একটি মাত্র অ্যাক্টিভেশন রয়েছে, তাই আমরা জানি কী অ্যাক্টিভেশন-রিসোর্স আমরা উল্লেখ করছি।
DELETE /groups/{group id}/activation
অ্যাক্টিভেশন বাতিল বা মুছে ফেলবে।
এই প্যাটার্নটি কার্যকর যখন কোনও গ্রুপের "অ্যাক্টিভেশন" এর পার্শ্ব-প্রতিক্রিয়া থাকে যেমন পেমেন্ট করা হচ্ছে, মেলগুলি প্রেরণ করা হচ্ছে ইত্যাদি। কেবলমাত্র POST এবং PATCH এর মতো পার্শ্ব প্রতিক্রিয়া হতে পারে। উদাহরণস্বরূপ যখন কোনও অ্যাক্টিভেশন মুছে ফেলার প্রয়োজন হয়, বলুন, মেলের মাধ্যমে ব্যবহারকারীদের জানান, ডিলিট সঠিক পছন্দ নয়; যে ক্ষেত্রে আপনি সম্ভবত করতে চান একটি নিষ্ক্রিয় সংস্থান তৈরি : POST /groups/{group_id}/deactivation
।
এই নির্দেশিকাগুলি অনুসরণ করা একটি ভাল ধারণা, কারণ এই স্ট্যান্ডার্ড চুক্তিটি আপনার ক্লায়েন্টদের জন্য এবং ক্লায়েন্ট এবং আপনার মধ্যে থাকা সমস্ত প্রক্সি এবং স্তরগুলি জেনে রাখে কখন এটি আবার চেষ্টা করা নিরাপদ, এবং কখন নয় know আসুন ধরা যাক ক্লায়েন্টটি ফ্লকি ওয়াইফাই সহ কোথাও রয়েছে এবং এর ব্যবহারকারী "নিষ্ক্রিয়" ক্লিক করে যা একটি ট্রিগার করে DELETE
: যদি এটি ব্যর্থ হয় তবে ক্লায়েন্টটি কেবল 404, 200 বা এটি পরিচালনা করতে পারে এমন অন্য কিছু না পাওয়া পর্যন্ত পুনরায় চেষ্টা করতে পারে। তবে এটি যদি ট্রিগার করে তবে এটি POST to deactivation
পুনরায় চেষ্টা করতে না জানে: পোষ্ট এটি বোঝায়।
যে কোনও ক্লায়েন্টের এখন একটি চুক্তি রয়েছে, যা অনুসরণ করার পরে, 42 টি ইমেলগুলি "আপনার গ্রুপটি নিষ্ক্রিয় করা হয়েছে" প্রেরণের বিরুদ্ধে সুরক্ষা দেবে, কেবলমাত্র তার এইচটিটিপি-লাইব্রেরি ব্যাকএন্ডে কলটি আবার চেষ্টা করে চলেছে বলে।
একটি একক বৈশিষ্ট্য আপডেট করা হচ্ছে: PATCH ব্যবহার করুন
PATCH /groups/{group id}
আপনি যদি কোনও বৈশিষ্ট্য আপডেট করতে চান তবে। যেমন "স্থিতি" সেট করা যেতে পারে এমন গোষ্ঠীতে একটি বৈশিষ্ট্য হতে পারে। "স্ট্যাটাস" এর মতো একটি বৈশিষ্ট্যটি প্রায়শই মানগুলির শ্বেত তালিকাতে সীমাবদ্ধ রাখার জন্য ভাল প্রার্থী হয়। উদাহরণগুলি কিছু অপরিজ্ঞাত JSON- স্কিম ব্যবহার করে:
PATCH /groups/{group id} { "attributes": { "status": "active" } }
response: 200 OK
PATCH /groups/{group id} { "attributes": { "status": "deleted" } }
response: 406 Not Acceptable
পার্শ্ব প্রতিক্রিয়া ছাড়াই রিসোর্স প্রতিস্থাপন, PUT ব্যবহার করুন।
PUT /groups/{group id}
আপনি যদি একটি সম্পূর্ণ গ্রুপ প্রতিস্থাপন করতে চান। এটি অগত্যা এর অর্থ এই নয় যে সার্ভারটি আসলে একটি নতুন গোষ্ঠী তৈরি করে এবং পুরাতনটিকে বাইরে ফেলে দেয়, উদাহরণস্বরূপ আইডিগুলি একই থাকবে। কিন্তু ক্লায়েন্ট জন্য, এই রাখুন কি করতে ক্লায়েন্ট তিনি একটি সম্পূর্ণ নতুন আইটেম, সার্ভারের প্রতিক্রিয়া উপর ভিত্তি করে পায় অনুমান করা উচিত: মানে।
ক্লায়েন্টকে কোনও PUT
অনুরোধের ক্ষেত্রে সর্বদা পুরো রিসোর্সটি প্রেরণ করা উচিত, একটি নতুন আইটেম তৈরি করার জন্য প্রয়োজনীয় সমস্ত ডেটা থাকা: সাধারণত পোষ্ট-তৈরির মতো একই ডেটার প্রয়োজন হয়।
PUT /groups/{group id} { "attributes": { "status": "active" } }
response: 406 Not Acceptable
PUT /groups/{group id} { "attributes": { "name": .... etc. "status": "active" } }
response: 201 Created or 200 OK, depending on whether we made a new one.
খুব গুরুত্বপূর্ণ প্রয়োজন হ'ল PUT
আদর্শবান: যদি কোনও গ্রুপ আপডেট করার সময় আপনার পার্শ্ব প্রতিক্রিয়া প্রয়োজন হয় (বা একটি অ্যাক্টিভেশন পরিবর্তন করা হয়), আপনার ব্যবহার করা উচিত PATCH
। সুতরাং, যখন আপডেটের ফলাফলগুলি যেমন কোনও মেল প্রেরণ করা হয় তখন ব্যবহার করবেন না PUT
।