সার্ভারের সাথে কথা বলার জন্য আমি ক্লায়েন্টের (কিছু ব্রাউজারে জেএস) কিছু এপিআই ডিজাইন সহ কিছুটা ক্রস্রোডে আছি। সুরক্ষা লক কার্যকর হওয়ার কারণে আমরা কোনও ক্রিয়নের ব্যর্থতার প্রতিনিধিত্ব করতে HTTP 409 সংঘাত ব্যবহার করি। স্যাটাইফ লকটি আমাদের গ্রাহকদের উত্পাদন ব্যবস্থায় দুর্ঘটনাক্রমে পরিবর্তনগুলি করা থেকে বিরত রাখে। নির্দিষ্ট এপিআই কল কেন ব্যর্থ হয়েছে তা নির্দেশ করার জন্য আমাকে ক্লায়েন্টকে আরও কৌতুকপূর্ণভাবে 409 পরিচালনা করার দায়িত্ব দেওয়া হয়েছে।
আমার সমাধানটি ছিল আমাদের এজেএক্স কলগুলির ব্যর্থতা হ্যান্ডলারগুলি মোড়ানো যা 409 এর কারণে কোনও কিছুতে ব্যর্থ হলে ক্লায়েন্টের উপর একটি বিজ্ঞপ্তি প্রদর্শন করবে - এটি সব ঠিক আছে এবং একই পদ্ধতি ব্যবহার করে অন্যান্য 4XX এবং 5XX ত্রুটির পাশাপাশি ভালভাবে কাজ করে।
একটি সমস্যা দেখা দিয়েছে যেখানে আমাদের রুট হ্যান্ডলারের একজন যখন ব্যবসায়ের যুক্তিযুক্ত ত্রুটির মুখোমুখি হয়ে 409 এর সাথে প্রতিক্রিয়া জানায় - আমার এজেএক্স র্যাপার জানিয়েছে যে সুরক্ষার লক চালু রয়েছে, যখন ক্লায়েন্টের বিদ্যমান ব্যর্থতা হ্যান্ডলার রিপোর্ট করে যে কী সমস্যা (এটি মনে করে) শরীরের উপর ভিত্তি করে সমস্যাটি রয়েছে প্রতিক্রিয়া। একটি সহজ সমাধান হ্যান্ডলারের প্রতিক্রিয়া বা সুরক্ষা লক উপস্থাপনের জন্য আমরা যে স্ট্যাটাস কোডটি ব্যবহার করি তা হ'ল পরিবর্তন করা।
যা আমাকে আমার ক্রসরোডে এনেছে: HTTP স্থিতি কোডগুলি কি ব্যবসার যুক্তি ত্রুটির উপস্থাপন করতে ব্যবহার করা উচিত? এই প্রশ্নটি আমি যে একই সমস্যার মুখোমুখি হয়েছি তা সম্বোধন করে তবে এটি তেমন আকর্ষণ অর্জন করতে পারেনি। লিঙ্কিত উত্তরে যেমন পরামর্শ দেওয়া হয়েছে, আমি ব্যবসায়ের যুক্তির মধ্যে ব্যর্থতা উপস্থাপনের জন্য উপযুক্ত শরীরের সাথে HTTP 200 ওকে ব্যবহারের দিকে ঝুঁকছি।
কারও কি এখানে কোন দৃ strong় মতামত আছে? কেউ কি আমাকে বোঝাতে সক্ষম হচ্ছেন ব্যর্থতা উপস্থাপনের এটি ভুল উপায়?
400 Bad Request
কম্বল হিসাবে HTTP কোডটি ক্লাস হিসাবে ব্যবসায়িক লজিক ত্রুটিগুলি কভার করা ভাল বলে মনে হয়।
400 Bad Request
ডেটা অনুপস্থিত বা পড়তে / পার্স করা যায় না এমন সময় আমি ব্যবহারের প্রবণতা রাখি । অর্থাৎ অনুরোধের ডেটা নিজেই কোনওভাবে খারাপ।
400 Bad Request
। এই বিচ্ছেদটির কারণ হ'ল ভবিষ্যতের সিস্টেমস, ডেভস বা নথিগুলির পাঠকরা আপনার বিশ্বব্যাপী মানক বিচ্যুত হওয়ার কারণে বিভ্রান্ত হতে পারে।