আমি ভাবছিলাম যে জনগণের মতামতগুলি একটি রেস্টলফুল PUT
অপারেশন সম্পর্কে কী যা প্রতিক্রিয়া সংস্থায় কিছুই (নাল) দেয় না।
আমি ভাবছিলাম যে জনগণের মতামতগুলি একটি রেস্টলফুল PUT
অপারেশন সম্পর্কে কী যা প্রতিক্রিয়া সংস্থায় কিছুই (নাল) দেয় না।
উত্তর:
এইচটিটিপি স্পেসিফিকেশন ( আরএফসি 2616 ) এর বেশ কয়েকটি সুপারিশ রয়েছে যা প্রযোজ্য। এখানে আমার ব্যাখ্যা:
200 OK
বিদ্যমান সংস্থানটিতে আপডেটের সফল PUT এর জন্য HTTP স্থিতি কোড । কোনও প্রতিক্রিয়া দেহের প্রয়োজন নেই। ( বিভাগ 9.6 অনুযায়ী , 204 No Content
আরও বেশি উপযুক্ত))201 Created
লোকেশন শিরোনাম ক্ষেত্রটিতে নতুন সংস্থার জন্য সুনির্দিষ্ট সুনির্দিষ্ট ইউআরআই সহ কোনও নতুন সংস্থার সফল পিটিউটের জন্য এইচটিটিপি স্থিতির কোডটি প্রতিক্রিয়া সংস্থায় প্রতিবেদনের মূল প্রতিধ্বনিত হয়েছে any ( আরএফসি 2616 ধারা 10.2.2 )409 Conflict
একটি PUT- র জন্য এইচটিটিপি স্থিতি কোড যা 3 র্থ- পার্টির পরিবর্তনের কারণে ব্যর্থ হয়েছে , যার সাথে সাশ্রয়ী মূল্যের আপডেট এবং বর্তমান সংস্থার মধ্যে পার্থক্যের একটি তালিকা রয়েছে। ( আরএফসি 2616 ধারা 10.4.10 )400 Bad Request
একটি অসফল PUT এর জন্য এইচটিটিপি স্থিতির কোড , প্রতিক্রিয়ার মূল অংশে প্রাকৃতিক-ভাষার পাঠ্য (যেমন ইংরাজী) সহ যা পুটটি ব্যর্থ হয়েছিল তা ব্যাখ্যা করে। ( আরএফসি 2616 ধারা 10.4 )No response body needed
200 এর সাথে সম্পর্কিত তা উল্লেখ করা হয়নি In বাস্তবে প্রতিক্রিয়া সংস্থার কোনও পুট সম্পর্কিত কোনও বিষয়ই উল্লেখ করা হয়নি। এটি কেবলমাত্র জানিয়েছেIf an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to indicate successful completion of the request.
এখানে বেশিরভাগ উত্তরের বিপরীতে, আমি আসলেই মনে করি যে পুট আপডেটেড রিসোর্সটি ফেরত পাঠানো উচিত (অবশ্যই এইচটিটিপি কোড ছাড়াও)।
PUT অপারেশনের প্রতিক্রিয়া হিসাবে আপনি যখন রিসোর্সটি ফিরিয়ে আনতে চান তার কারণ হ'ল আপনি যখন সার্ভারে কোনও উত্সের প্রতিনিধিত্ব প্রেরণ করবেন তখন সার্ভারও এই সংস্থানটিতে কিছু প্রক্রিয়াকরণ প্রয়োগ করতে পারে, তাই ক্লায়েন্টটি জানতে চান কীভাবে এই সংস্থানটি করে অনুরোধটি সফলভাবে শেষ হওয়ার পরে দেখুন। (অন্যথায় এটি আর একটি জিইটি অনুরোধ জারি করতে হবে)।
আমি মনে করি সার্ভারের জন্য কোনও পিট এর প্রতিক্রিয়াতে সামগ্রী ফিরে পাওয়া সম্ভব। আপনি যদি এমন প্রতিক্রিয়া এনভেলভ ফর্ম্যাট ব্যবহার করেন যা সাইডেলয়েড ডেটা (যেমন এমবার-ডেটা দ্বারা গ্রাহক করা ফর্ম্যাট) এর জন্য মঞ্জুরি দেয় তবে আপনি অন্যান্য বিষয়বস্তুও অন্তর্ভুক্ত করতে পারেন যা ডাটাবেস ট্রিগার ইত্যাদির মাধ্যমে সংশোধিত হতে পারে ইত্যাদি etc.) সিডলয়েড ডেটা স্পষ্টভাবে হ্রাস করতে হয় অনুরোধের # টি, এবং এটি অনুকূলকরণের জন্য দুর্দান্ত জায়গা হিসাবে মনে হচ্ছে))
যদি আমি কেবল পুটকে গ্রহণ করি এবং তার কাছে রিপোর্ট করার মতো কিছু না থাকে তবে আমি কোনও দেহবিহীন স্থিতি কোড 204 ব্যবহার করি। যদি আমার কাছে রিপোর্ট করার কিছু থাকে তবে আমি স্ট্যাটাস কোড 200 ব্যবহার করি এবং একটি বডি অন্তর্ভুক্ত করি।
HTTP- র / 1.1 বৈশিষ্ট (অনুচ্ছেদ 9.6) যথাযথ প্রতিক্রিয়া / ত্রুটি কোডের আলোচনা করা হয়েছে। তবে এটি প্রতিক্রিয়া সামগ্রীতে ঠিকানা দেয় না।
আপনি কি আশা করবেন? একটি সাধারণ এইচটিটিপি প্রতিক্রিয়া কোড (200 ইত্যাদি) আমার কাছে সোজা এবং দ্ব্যর্থহীন বলে মনে হচ্ছে।
যদি REST এপিআই এর ব্যাকএন্ডটি কোনও এসকিউএল রিলেশনাল ডাটাবেস হয়, তবে
যদি আপনি হারানো আপডেটগুলি সম্পর্কে চিন্তা করেন না, বা আপনি যদি আপনার ক্লায়েন্টদের PUT এর পরপরই GET করতে বাধ্য করতে চান, তবে পুট থেকে কোনও কিছুই ফিরিয়ে দেবেন না।
"তৈরি" এর জন্য ২০১২ এর এইচটিপি প্রতিক্রিয়া কোডটি "লোকেশন" শিরোনাম সহ ক্লায়েন্টটি নতুনভাবে তৈরি হওয়া সংস্থানটি কোথায় খুঁজে পেতে পারে তা নির্দেশ করে।
আমি আমার পরিষেবাগুলিতে RESTful API ব্যবহার করেছি, এবং এখানে আমার মতামত: প্রথমে আমাদের অবশ্যই একটি সাধারণ দৃষ্টিতে পৌঁছাতে হবে PUT
create এমন একটি সংস্থান তৈরি করতে বা না পেয়ে আপডেট করতে ব্যবহৃত হয়।
আমি সংস্থানগুলি সংজ্ঞায়িত করেছি: Stateless resource
এবং Stateful resource
:
রাষ্ট্রবিহীন সংস্থানগুলি এই সংস্থানগুলির জন্য, খালি শরীরের সাথে এইচটিপি কোডটি ফিরিয়ে দিন, এটি যথেষ্ট।
রাষ্ট্রীয় উত্স উদাহরণস্বরূপ: সংস্থানটির সংস্করণ। এই ধরণের সংস্থানগুলির জন্য, আপনি যখন এটি পরিবর্তন করতে চান তখন আপনাকে অবশ্যই সংস্করণ সরবরাহ করতে হবে, সুতরাং সম্পূর্ণ উত্সটি ফিরিয়ে দিন বা ক্লায়েন্টকে সংস্করণটি ফিরিয়ে দিন, সুতরাং ক্লায়েন্টকে আপডেট ক্রিয়াকলাপের পরে একটি অনুরোধ প্রেরণ করতে হবে না।
কিন্তু , একটি পরিষেবা বা সিস্টেম জন্য, রাখা এটাsimple
,clearly
,easy to use and maintain
সবচেয়ে গুরুত্বপূর্ণ বিষয়।
ঠিক যেমন একটি খালি রিকুয়েস্ট বডিটি জিইটি অনুরোধের মূল উদ্দেশ্যকে সাথে রাখে এবং খালি প্রতিক্রিয়া দেহটি একটি পিইটি অনুরোধের মূল উদ্দেশ্যকে সাথে রাখে।
মনে হচ্ছে ঠিক আছে ... যদিও আমি মনে করি সাফল্য / ব্যর্থতা / পোস্টের সময় / # বাইট প্রাপ্ত / ইত্যাদির একটি প্রাথমিক সূচক। ভাল হবে।
সম্পাদনা করুন: আমি ডেটা অখণ্ডতা এবং / অথবা রেকর্ড রাখার লাইন ধরে ভাবছিলাম; মেটাডেটা যেমন একটি এমডি 5 হ্যাশ বা টাইমস্ট্যাম্প প্রাপ্ত সময়ের জন্য বড় ডেটা ফাইলগুলির জন্য সহায়ক হতে পারে।
এইচটিটিপি প্রতিক্রিয়াটির শিরোনাম এবং শরীরে পার্থক্য রয়েছে। PUT কখনই কোনও শরীর ফেরত দেওয়া উচিত নয়, তবে অবশ্যই শিরোনামটিতে একটি প্রতিক্রিয়া কোড দিতে হবে। সফল হলে 200 বেছে নিন এবং যদি 4 xxx না হয় তবে বেছে নিন। নাল রিটার্ন কোডের মতো কোনও জিনিস নেই। আপনি কেন এটা করতে চান?
200
পুট, ডিলেট বা অন্য কোনও পদ্ধতির জন্য বিশেষত ব্যবহারের বিষয়টি অস্বীকার করে। আমি কি কিছু রেখে গেলাম? যেমন মোজিলা ডাব্লু 3 এবং আইইটিএফ এর বস হয়ে যায়? ;) অথবা সম্ভবত তারা পোস্টেলের দৃtel়তা নীতি সম্পর্কে কখনও শুনেনি।