সংক্ষিপ্ত, সরাসরি উত্তর
যেহেতু অনুরোধটি কাজের তালিকা সম্পাদন করার কথা বলেছে (কার্যগুলি সেই সংস্থান যা আমরা এখানে বলছি), সুতরাং যদি টাস্ক গ্রুপটি মৃত্যুদন্ড কার্যকর করার দিকে এগিয়ে যায় (এটি নির্বাহের ফলাফল নির্বিশেষে) তবে তা বোধগম্য হবে প্রতিক্রিয়া অবস্থা হবে 200 OK
। অন্যথায়, যদি কোনও সমস্যা ছিল যা টাস্ক গ্রুপের কার্যকরকরণকে আটকাতে পারে যেমন টাস্ক অবজেক্টগুলির বৈধতা ব্যর্থকরণ বা উদাহরণস্বরূপ কিছু প্রয়োজনীয় পরিষেবা উপলব্ধ না হয়, তবে প্রতিক্রিয়া স্থিতিটি সেই ত্রুটিটিকে বোঝানো উচিত। অতীতে, যখন কার্য সম্পাদনের কাজ শুরু হয়, কাজগুলি সম্পাদন করার অনুরোধটি বডিটিতে তালিকাভুক্ত হয়, তখন আমি প্রত্যাশা করি যে মৃত্যুদণ্ডের ফলাফলগুলি প্রতিক্রিয়া সংস্থায় তালিকাভুক্ত হবে।
দীর্ঘ, দার্শনিক উত্তর
আপনি এই দ্বিধাদ্বন্দ্বের সম্মুখীন হচ্ছেন কারণ আপনি এইচটিটিপি যা ডিজাইনের জন্য তৈরি করেছিলেন তা থেকে সরিয়ে নিয়ে যাচ্ছেন। আপনি এটি রিসোর্সগুলি পরিচালনা করার জন্য ইন্টারঅ্যাক্ট করছেন না, বরং আপনি এটিকে দূরবর্তী পদ্ধতির প্রার্থনার মাধ্যম হিসাবে ব্যবহার করছেন (যা খুব অদ্ভুত নয় তবে প্রি-কল্পিত স্কিম ছাড়াই খারাপ কাজ করে)।
উপরের দিকে বলা হচ্ছে এবং এই উত্তরটিকে দীর্ঘ মতামতযুক্ত গাইডে পরিণত করার সাহস ছাড়াই নিম্নলিখিতটি একটি ইউআরআই স্কিম যা সংস্থান পরিচালনার পদ্ধতির সাথে সঙ্গতিপূর্ণ:
/tasks
GET
সমস্ত কাজ তালিকাভুক্ত, পৃষ্ঠাযুক্ত
POST
একটি একক কাজ যোগ করুন
/tasks/task/[id]
GET
একক টাস্কের স্টেট অবজেক্টের সাথে সাড়া দেয়
DELETE
কোনও কাজ বাতিল / মুছে দেয়
/tasks/groups
GET
সমস্ত টাস্ক গ্রুপ তালিকাভুক্ত, পৃষ্ঠাযুক্ত
POST
কাজের একটি গ্রুপ যুক্ত করে
/tasks/groups/group/[id]
GET
একটি টাস্ক গ্রুপের রাষ্ট্রের সাথে প্রতিক্রিয়া জানায়
DELETE
টাস্ক গ্রুপ বাতিল / মুছে দেয়
এই কাঠামোটি তাদের কী করবেন তা নয়, সম্পদের বিষয়ে কথা বলে। সম্পদ দিয়ে যা করা হচ্ছে তা হ'ল অন্য একটি পরিষেবার উদ্বেগ।
আর একটি গুরুত্বপূর্ণ বিষয় হ'ল এটি এইচটিটিপি অনুরোধ হ্যান্ডলারের খুব দীর্ঘ সময়ের জন্য অবরুদ্ধ না রাখাই যুক্তিযুক্ত। অনেকটা ইউআই এর মতোই, এইচটিটিপি ইন্টারফেসটি প্রতিক্রিয়াশীল হওয়া উচিত - এমন টাইমস্কেলে যা কয়েক মাত্রার ধীর গতির অর্ডার হয় (কারণ এই স্তরটি আইওর সাথে ডিল করে)।
এইচটিটিপি ইন্টারফেসের নকশার দিকে অগ্রসর করা যা সংস্থানগুলি কঠোরভাবে পরিচালিত করে যখন কোনও বাটন ক্লিক করা হয় তখন কোনও ইউআই থ্রেড থেকে দূরে কাজ সরিয়ে নেওয়া যতটা কঠিন। এটি প্রয়োজন যে এইচটিটিপি সার্ভারটি অনুরোধ হ্যান্ডলারের কার্য সম্পাদন করার পরিবর্তে কার্য সম্পাদনের জন্য অন্যান্য পরিষেবাদির সাথে যোগাযোগ করে। এটি অগভীর বাস্তবায়ন নয়, এটি দিক পরিবর্তন।
এই জাতীয় ইউআরআই স্কিমটি কীভাবে ব্যবহৃত হবে তার কয়েকটি উদাহরণ
একটি একক কার্য সম্পাদন এবং ট্র্যাকিং অগ্রগতি:
POST /tasks
কার্য সম্পাদনের জন্য
GET /tasks/task/[id]
প্রতিক্রিয়া অবজেক্টের completed
বর্তমান অবস্থা / অগ্রগতি দেখানোর সময় ইতিবাচক মান না পাওয়া পর্যন্ত
একটি একক কার্য সম্পাদন এবং এর সমাপ্তির অপেক্ষায়:
POST /tasks
কার্য সম্পাদনের জন্য
GET /tasks/task/[id]?awaitCompletion=true
completed
ইতিবাচক মান না হওয়া পর্যন্ত (সম্ভবত সময়সীমা শেষ হতে পারে, এ কারণেই এটি লুপ করা উচিত)
একটি টাস্ক গ্রুপ কার্যকর করা এবং অগ্রগতি ট্র্যাক করা:
POST /tasks/groups
কার্য সম্পাদনের জন্য গ্রুপের সাথে
GET /tasks/groups/group/[groupId]
প্রতিক্রিয়ার অবজেক্টের completed
সম্পত্তিটির মূল্য না হওয়া পর্যন্ত পৃথক কার্য স্থিতি দেখানো হয় (উদাহরণস্বরূপ 5 টির মধ্যে 3 টি কার্য সম্পন্ন হয়)
কোনও কার্য গ্রুপের জন্য মৃত্যুদণ্ডের অনুরোধ এবং এর সমাপ্তির অপেক্ষায়:
POST /tasks/groups
কার্য সম্পাদনের জন্য গ্রুপের সাথে
GET /tasks/groups/group/[groupId]?awaitCompletion=true
ফলস্বরূপ প্রতিক্রিয়া না দেওয়া পর্যন্ত যা সমাপ্তি নির্দেশ করে (সম্ভবত সময়সীমা শেষ হতে পারে, তাই লুপ করা উচিত)