অবহেলিত API- র ক্লায়েন্টদের অবহিত করার জন্য HTTP প্রতিক্রিয়া শিরোনামের কনভেনশন


86

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

উত্তর:


75

আমি স্থিতি কোডের কোনও কিছুকে পশ্চাদপটে সামঞ্জস্য রাখতে পরিবর্তন করব না। আমি প্রতিক্রিয়াতে একটি "সতর্কতা" শিরোনাম যুক্ত করব:

Warning: 299 - "Deprecated API"

আপনি "এজেন্ট" এর সাথে "-" নির্দিষ্ট করতে পারেন যা সতর্কতাটি প্রকাশ করে এবং সতর্কতা-পাঠ্যে আরও স্পষ্ট হয়ে উঠতে হবে:

Warning: 299 api.blazingFrog.com "Deprecated API: use betterapi.blazingFrog.com instead. Old API maintained until 2015-06-02"

সতর্কতা শিরোনাম এখানে নির্দিষ্ট করা হয়েছে: https://tools.ietf.org/html/rfc7234#section-5.5 । সতর্কতা-কোড 299 জেনেরিক, "অবচয়" মানক নয়।

আপনাকে আপনার এপিআইপি ক্লায়েন্টদের HTTP সতর্কতাগুলিতে লগ করতে এবং এটি পর্যবেক্ষণ করতে হবে।

আমি এখন অবধি এটি কখনও ব্যবহার করি নি, তবে যখন আমার সংস্থা রেস্ট এপিআইতে আরও পরিণত হবে আমি এটিকে সংহত করব।

সম্পাদনা (2019-04-25): @ হ্যারি উড যেমন উল্লেখ করেছেন, সতর্কতা শিরোনাম ডকুমেন্টেশনে ক্যাশে সম্পর্কিত একটি অধ্যায়ে রয়েছে। তবে আরএফসি স্পষ্টWarnings can be used for other purposes, both cache-related and otherwise.

আপনি যদি কোনও বিকল্প পদ্ধতি পছন্দ করেন তবে এই খসড়াটি https://tools.ietf.org/html/draft-dalal-deprecation-header-00 একটি নতুন শিরোনাম "অবচয়" পরামর্শ দেয়।


4
সতর্কতা-মানটির শেষে সতর্কবার্তার তারিখটি এখানে কোনও উদ্দেশ্য করে না এবং এটি বাদ দেওয়া ভাল, অথবা আপনি বিভ্রান্তিকর ক্লায়েন্টদের ঝুঁকিপূর্ণ: "যদি কোনও প্রাপক হয়। । । Dateএকই বার্তায় মান থেকে পৃথক হওয়া একটি সতর্কবার্তা-তারিখ গ্রহণ করে , প্রাপক সতর্কতা-মান বাদ দিতে হবে। । । আগে . । । বার্তা ব্যবহার করে। "
ভাসিলি ফারনভ

আপনাকে সতর্ক-ডেট অন্তর্ভুক্ত করেন, তাহলে এটি হিসাবে একই ভাবে ফরম্যাট করা আবশ্যক Dateশিরোলেখ: "Thu, 02 Apr 2015 12:25:32 GMT"
ভাসিলি ফারনভ

@ ভ্যাসিলিফ্যারনভ: আপনি ঠিক বলেছেন, কারণ সেই ক্ষেত্রে (অবহিত এপিআই) এই সতর্কতা বার্তা ভবিষ্যতে সর্বদা সত্য হবে। সুতরাং যদি প্রতিক্রিয়ার (সতর্কতা বার্তা সহ) কোনও প্রক্সিতে ক্যাশে পাঠানো হয় এবং বার্তার তারিখটি আলাদা হয় তবে সতর্কতাটিকে অগ্রাহ্য করা হবে যদিও এটি এখনও বৈধ থাকবে। আমি প্রতিক্রিয়াটি সম্পাদনা করি
বেনসি

যদিও "সতর্কতা" শিরোনামটি ক্যাশে সম্পর্কিত নয়? আমি আপনার ডকুমেন্টেশনের লিঙ্কটির অর্থ এর মধ্যে ক্যাশিংয়ের উল্লেখ রয়েছে, তবে পুরো আরএফসি ডকুমেন্টটি ক্যাশে সম্পর্কিত বলে মনে হচ্ছে। তবে Warningশিরোনামটি অবচয়কে বর্ণনা করার জন্য ফ্রি-পাঠ্য স্থান হিসাবে ভাল দেখায়। Deprecationএবং Sunsetহেডার অন্যান্য উত্তর উল্লেখ করা হয়েছে, একটি কঠিন আরো সম্ভাব্য মেশিনে পাঠযোগ্য ভাবে থামিয়ে দেওয়া বর্ণনা জন্য একটি উঠতি আদর্শ সমাধান হবে বলে মনে হচ্ছে হবে।
হ্যারি উড

4
Warningশিরোনাম কেবল ক্যাশে সম্পর্কিত নয়। Warningবিভাগটির প্রথম বাক্যটি হ'ল "সতর্কতাগুলি অন্যান্য উদ্দেশ্যে, ক্যাশে-সম্পর্কিত এবং অন্যথায় ব্যবহার করা যেতে পারে।"
leelebi মুরাত

37

আপনি 410 (গন) ব্যবহার করতে পারেন ।

ডাব্লু 3 সি এর স্থিতি কোডের সংজ্ঞাগুলি এটি কীভাবে বর্ণনা করে তা এখানে:

410 (গেছে)

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

410 প্রতিক্রিয়াটি প্রাথমিকভাবে ওয়েব রক্ষণাবেক্ষণের কাজটি প্রাপককে অবহিত করে যে রিসোর্সটি ইচ্ছাকৃতভাবে অনুপলব্ধ এবং সার্ভারের মালিকরা চান যে সেই সংস্থার দূরবর্তী লিঙ্কগুলি অপসারণ করা উচিত assist এই জাতীয় ইভেন্টটি সীমিত সময়, প্রচারমূলক পরিষেবাদি এবং সার্ভারের সাইটে কাজ করে না এমন ব্যক্তিদের সাথে সম্পর্কিত সংস্থাগুলির জন্য সাধারণ। সমস্ত স্থায়ীভাবে অনুপলব্ধ সংস্থানগুলিকে "চলে গেছে" হিসাবে চিহ্নিত করা বা কোনও সময়ের জন্য চিহ্ন রাখা প্রয়োজন নয় - যা সার্ভারের মালিকের বিবেচনার ভিত্তিতে ছেড়ে যায়।


36
410 সঙ্গে সমস্যা এটি "টু-করা-অবচিত" প্রয়োজন মিলছে না ... যখন এপিআই চলে গেছে এটা কাজ করে জরিমানা, কিন্তু না এটা যে হবে এ সর্বস্বান্ত করা ভবিষ্যতে
জুলিয়েন জেনেসটাক্স

4
আপনি 410 ফেরত
পেলে

4
410 Goneএটি অবমূল্যায়নের বিষয়ে নয়, এটি পদ্ধতি সম্পর্কে আরও বেশি উপলভ্য। @ বেনসি যেমন বলেছে, সতর্কতা শিরোনাম
সেম্পশা

4
এটি
অবজ্ঞাত

16

আমি 301 (স্থায়ীভাবে সরানো) সাথে চলে যেতাম 300 টি সিরিজের কোডগুলি ক্লায়েন্টকে বলার কথা ছিল যে তারা করণীয় আছে।


4
এটাই সম্ভবত আমি একবার ব্যবহার করব যখন শেষ পয়েন্টটি আসলে সরিয়ে ফেলা হবে তবে আমি তাদের কিছু সময়ের জন্য অবহিত করার সুযোগ দিতে চাই (ধরে নিলাম তারা প্রতিক্রিয়াতে এইচটিটিপি শিরোনামের দিকে তাকাবে) যাতে তারা প্রয়োজনীয় পরিবর্তনগুলি করতে পারে তাদের শেষ
ব্লেজিংফ্রোগ

4
স্থানান্তরিত করার জন্য সত্যিই একটি স্থিতি নেই। 302 (সাময়িকভাবে অনুরোধ করা সংস্থান বসবাস অন্য একটি অবস্থানে, কিন্তু এটি এখনও অনুরোধ করা URI এ পাওয়া যাবে।) ...
u07ch

4
আমি কোনও স্থিতি খুঁজছি না তবে প্রতিক্রিয়ায় যুক্ত করতে একটি "স্ট্যান্ডার্ড" শিরোনাম খুঁজছি।
ব্লেজিংফ্রোগ 21

4
এই জাতীয় প্রতিক্রিয়ার জন্য কোনও মানক শিরোনাম নেই। আপনার নিজের একটি শিরোনাম তৈরি করা উচিত এবং এটি আপনার নিজের এপির ডকুমেন্টেশনে বর্ণনা করা উচিত।
ব্রায়ান কেলি

আমি মনে করি যে কোনও প্রতিক্রিয়া কোড> = 300 জিনিস ভাঙ্গার কথা। 299 ক্লায়েন্টদের প্রয়োজনীয় পরিবর্তনগুলি করার সময় এপিআই অক্ষম না হওয়া পর্যন্ত তাদের অ্যাপ্লিকেশনটি বাঁচিয়ে রাখার অনুমতি দেয়।
ডেভলর্ড

6

আমি একটি 207 Multi-Statusসাড়া দেওয়ার সুপারিশ করবো , এটি ইঙ্গিত করে যে এটি একটি সফল প্রতিক্রিয়া, তবে এটির দ্বিতীয় সম্ভাবনাময় স্থিতিও রয়েছে।


4
মজাদার. আমি তার সম্পর্কে জানতাম না, তবে আমি মনে করি অনুশীলনে একটি শক্ত বিপদ রয়েছে যে আপনি কিছু ক্লায়েন্টের জন্য একটি ভিন্ন প্রতিক্রিয়া কোডটি অদলবদল করে এমনকি 200 সীমাতে থাকলেও একটি ব্রেকিং প্রবর্তন করবেন । আমার ধারণা আপনি চাপটি ছড়িয়ে দিয়ে এক ধরণের কোমল র‌্যাচিং করতে পারেন। একটি Deprecationশিরোলেখ দিয়ে শুরু করুন (যা ক্লায়েন্টরা দুর্ভাগ্যবশত উপেক্ষা করতে পারে) এরপরে এই 207 কোডটি ব্যবহার করুন, পরে 301 সরানো হয়েছে, অবশেষে 410 চলে গেছে!
হ্যারি উড

4

@ ড্রেটের প্রতিক্রিয়া পরিমার্জন হ্রাসের জন্য দুটি প্রাসঙ্গিক HTTP শিরোনাম রয়েছে: Deprecation( https://tools.ietf.org/html/draft-dalal-deprecation-header-00 ) এবং Sunset

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

অবহেলিত সংস্থার পরিকল্পিত সূর্যাস্তের তারিখ সম্পর্কে ব্যবহারকারীদের অবহিত করতে, Sunsetশিরোনাম হ্রাসের শিরোনাম ছাড়াও ব্যবহার করা উচিত। এটি বিভাগ # 5 https://tools.ietf.org/html/draft-dalal-deprecation-header-00#section-5 বিভাগে বর্ণিত হয়েছে ।

খসড়া # 11 https://tools.ietf.org/html/draft-wilde-sunset-header-11 এর Sunsetহেডার সুস্পষ্ট এই দৃষ্টিভঙ্গি ভাল অধ্যায় 1.4 হিসেবে https://tools.ietf.org/html/draft-wilde -সুনসেট-শিরোনাম -11 # বিভাগ-1.4


3

এখানে একটি HTTP শিরোলেখ ক্ষেত্র রয়েছে Sunsetযা উত্সের আসন্ন অবসন্নতার সংকেত দেওয়ার উদ্দেশ্যে intended https://tools.ietf.org/html/draft-wilde-sunset-header একটি আরএফসি হওয়ার শেষ পর্যায়ে রয়েছে। আদর্শভাবে, আপনার এপিআই এর ডকুমেন্ট হওয়া উচিত যা এটি ব্যবহার করতে চলেছে Sunset, যাতে ক্লায়েন্টরা চাইলে এটির জন্য এটি সন্ধান করতে এবং তাতে কাজ করতে পারে।

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