যখন পিতামাতার সংস্থান না পাওয়া যায় তখন পোষ্টের কাছে যথাযথ প্রতিক্রিয়া স্থিতি কোডটি কী?


10

আমি নিম্নলিখিত প্রান্তটি করেছি:

a/{id}/b

এবং এটিতে bপ্রেরণের POSTঅনুরোধ সহ একটি তৈরি করতে চাই । aপ্রদত্ত সহ যদি {id}পাওয়া না যায় তবে আমার সাথে প্রতিক্রিয়া জানানো উচিত 404 NOT_FOUNDবা সম্ভবত 409 CONFLICT?

এটি প্লেইন হ্যান্ডেল করার জন্য a/{id}, কৌশলটি এখানে একটি সাবসোর্স ব্যবহৃত হয়।


উত্তর:


15

404 NOT FOUNDউপযুক্ত প্রতিক্রিয়া বলে মনে হচ্ছে, কারণ এই আইডি সহ সংস্থানটি বিদ্যমান নেই। এটি বুঝতে খুব স্পষ্ট এবং যদি a/{id}ডাকা হয় আপনি একই প্রতিক্রিয়া আশা করছেন ।

409 CONFLICTআমার কাছে এটির চেয়ে ভাল পছন্দ বলে মনে হচ্ছে না, কারণ আপনার উদাহরণে যখন আপনি প্যারেন্ট রিসোর্স পাওয়া যায় নি তখন আপনি 409 ফেরত পাবেন :) :)

তবে মনে আছে যে সবচেয়ে গুরুত্বপূর্ণ বিষয়টি আপনার এপিআইতে সামঞ্জস্যপূর্ণ


আমি রাজী. আপনি যদি এমন কোনও ফোল্ডারে লেখার চেষ্টা করতে যা অস্তিত্বহীন ছিল, তবে এটি দ্বন্দ্ব বা অনুপস্থিত ফোল্ডারের ত্রুটি? আমার কাছে এটি আরও স্বজ্ঞাত মনে হয়।
নীল

একটি "ফোল্ডার" বলতে কী বোঝায় এমন একটি পথ যা বিদ্যমান নেই?
ধেরিক

আমার অর্থ একটি ফোল্ডার, যেমন ফাইল সিস্টেমে।
নিল

আপনি দৃশ্যের বিস্তারিত বলতে পারেন? কারণ এটি নির্ভর করে। যদি ফোল্ডারটি সার্ভারের জন্য প্রত্যাশিত ছিল এবং (যে কারণেই নেই) তবে আমি মনে করি এটি একটি সার্ভার ত্রুটি (5XX) ক্লায়েন্ট ত্রুটি নয় (4xx)। যদি এই ফোল্ডারটির মান ক্লায়েন্ট কর্তৃক উত্স-এ প্রেরণ করা হয় তবে idএটি 404 But বিদ্যমান না"). এটি জিজ্ঞাসা এবং আলোচনা করা ভাল প্রশ্ন।
ধেরিক

আপনি যদি path /nonexistance/help.html সহ সার্ভারকে ফাইলের জন্য জিজ্ঞাসা করেন এবং ফোল্ডার / অস্তিত্বের অস্তিত্ব নেই, তবে এর কেবলমাত্র একটি পরিষ্কার প্রতিক্রিয়া রয়েছে। 404 ফাইল পাওয়া যায় নি! এমনকি একটি / home/help.html উপস্থিত থাকতে পারে, এবং প্রতিক্রিয়া পৃথক হবে না। এটি স্পষ্টতই একটি REST অ্যাপ্লিকেশন, তবে যুক্তিটি পরিবর্তিত হওয়ার কোনও কারণ আমি দেখতে পাচ্ছি না। পিতামাতার অবশ্যই আগে উপস্থিত থাকতে হবে।
নিল

4

@ ধেরিকের উত্তর ছাড়াও।

ইউআরআইগুলি শনাক্তকারী হয় , তাই আমাদের মনে রাখতে হবে ( /a/{id}/bএটি একটি সনাক্তকারী)। কোনো URI বা WWW জন্য অর্থহীন, এবং তাই HTTP- র ক্লায়েন্ট জন্য।

404 সঠিক উত্তর । সংক্ষেপে, সার্ভার উত্তর দিচ্ছে

এই জাতীয় আইডি সহ আমি কোনও সংস্থান পাইনি। রিসোর্স পাওয়া যায় নি 1

নিখোঁজ সংস্থানটি পিতামাতার বা সন্তানের কোনও ব্যাপার নয়।

আমরা, বিকাশকারীরা, ইউআরআইতে স্তরক্রম এবং পথগুলি দেখি , কিন্তু এইচটিটিপি ক্লায়েন্টরা তা করে না। অন্য কথায়, এইচটিটিপি কেবলমাত্র এইচটিটিপি ক্লায়েন্ট দ্বারা ব্যাখ্যা করার জন্য বোঝানো হয়েছে তবে মানুষের দ্বারা নয় (দেবগণ, শেষ ব্যবহারকারীগণ) ইত্যাদি।

সন্দেহের ক্ষেত্রে, আপনার (মানব) কোন কোডটি বোঝায় তা জিজ্ঞাসা করবেন না। জিজ্ঞাসা করুন, এইচটিটিপি ক্লায়েন্টের জন্য কী কোডটি বোঝায়। আপনি কীভাবে এইচটিটিপি ক্লায়েন্টের আচরণ করতে চান?

কেন? কারণ কিছু স্থিতি কোডের কারণে এই ক্লায়েন্টরা কিছু নির্দিষ্ট ক্রিয়াকলাপ চালায়। উদাহরণস্বরূপ, 302 । এই কোডটি সাধারণত ওয়েব ব্রাউজারগুলিকে প্রতিক্রিয়া শিরোনামগুলিতে জানানো নির্দিষ্ট কোনও স্থানে (ইউআরআই) পুনর্নির্দেশের জন্য তোলে।

এটি আপনার ক্ষেত্রে নাও হতে পারে তবে সচেতন হওয়া জরুরী। শেষ পর্যন্ত, এইচটিটিপি স্থিতি কোডগুলি এইচটিটিপি ক্লায়েন্টদের সম্বোধন করা হয়। আমাদের অ্যাপ্লিকেশনগুলিতে নয়। ব্যক্তিদের কাছে নয়।


1: 409 নেভিগেশন ত্রুটি হিসাবে খুব কমই প্রয়োগ করা হয়। এটিতে সাধারণত দূরবর্তী ক্রিয়াকলাপগুলি (মুছুন, আপডেট করুন, নতুন ইত্যাদি) জড়িত। তবে ইউআরআই থাকা উচিত। অন্যথায় 404 বিজয়ী হবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.