Status

Status টাইপ একটি লজিক্যাল ত্রুটি মডেলকে সংজ্ঞায়িত করে যা REST API এবং RPC API সহ বিভিন্ন প্রোগ্রামিং পরিবেশের জন্য উপযুক্ত। এটি gRPC দ্বারা ব্যবহৃত হয়। ত্রুটি মডেলটি ডিজাইন করা হয়েছে:

  • বেশিরভাগ ব্যবহারকারীর জন্য ব্যবহার করা এবং বোঝা সহজ
  • অপ্রত্যাশিত চাহিদা মেটাতে যথেষ্ট নমনীয়

ওভারভিউ

Status মেসেজে তিনটি তথ্য থাকে: ত্রুটি কোড, ত্রুটি বার্তা এবং ত্রুটির বিবরণ। ত্রুটি কোডটি google.rpc.Code এর একটি enum মান হওয়া উচিত, তবে প্রয়োজনে এটি অতিরিক্ত ত্রুটি কোড গ্রহণ করতে পারে৷ ত্রুটি বার্তাটি একটি বিকাশকারী-মুখী ইংরেজি বার্তা হওয়া উচিত যা বিকাশকারীদের ত্রুটিটি বুঝতে এবং সমাধান করতে সহায়তা করে৷ যদি একটি স্থানীয় ব্যবহারকারী-মুখোমুখী ত্রুটি বার্তার প্রয়োজন হয়, স্থানীয়কৃত বার্তাটিকে ত্রুটির বিবরণে রাখুন বা ক্লায়েন্টে স্থানীয়করণ করুন। ঐচ্ছিক ত্রুটির বিবরণে ত্রুটি সম্পর্কে নির্বিচারে তথ্য থাকতে পারে। google.rpc প্যাকেজে ত্রুটির বিবরণের একটি পূর্বনির্ধারিত সেট রয়েছে যা সাধারণ ত্রুটির অবস্থার জন্য ব্যবহার করা যেতে পারে।

ভাষা ম্যাপিং

Status বার্তাটি ত্রুটি মডেলের যৌক্তিক উপস্থাপনা, তবে এটি অগত্যা প্রকৃত তারের বিন্যাস নয়। যখন Status বার্তাটি বিভিন্ন ক্লায়েন্ট লাইব্রেরি এবং বিভিন্ন তারের প্রোটোকলগুলিতে প্রকাশ করা হয়, তখন এটি ভিন্নভাবে ম্যাপ করা যেতে পারে। উদাহরণস্বরূপ, এটি সম্ভবত জাভাতে কিছু ব্যতিক্রমের সাথে ম্যাপ করা হবে, তবে সম্ভবত সি-তে কিছু ত্রুটি কোডে ম্যাপ করা হবে।

অন্যান্য ব্যবহার

ত্রুটি মডেল এবং Status বার্তাটি বিভিন্ন পরিবেশে ব্যবহার করা যেতে পারে, হয় API সহ বা ছাড়াই, বিভিন্ন পরিবেশে একটি সামঞ্জস্যপূর্ণ বিকাশকারী অভিজ্ঞতা প্রদান করতে।

এই ত্রুটি মডেলের উদাহরণ ব্যবহার অন্তর্ভুক্ত:

  • আংশিক ত্রুটি. যদি কোনও পরিষেবার ক্লায়েন্টকে আংশিক ত্রুটিগুলি ফেরত দিতে হয়, তবে এটি আংশিক ত্রুটিগুলি নির্দেশ করতে স্বাভাবিক প্রতিক্রিয়াতে Status এম্বেড করতে পারে।

  • কর্মপ্রবাহ ত্রুটি. একটি সাধারণ কর্মপ্রবাহের একাধিক ধাপ থাকে। প্রতিটি ধাপে ত্রুটি প্রতিবেদনের জন্য একটি Status বার্তা থাকতে পারে।

  • ব্যাচ অপারেশন। যদি একটি ক্লায়েন্ট ব্যাচ অনুরোধ এবং ব্যাচ প্রতিক্রিয়া ব্যবহার করে, Status বার্তাটি সরাসরি ব্যাচ প্রতিক্রিয়ার ভিতরে ব্যবহার করা উচিত, প্রতিটি ত্রুটি সাব-প্রতিক্রিয়ার জন্য একটি।

  • অ্যাসিঙ্ক্রোনাস অপারেশন। যদি একটি এপিআই কল এম্বেড করে অ্যাসিঙ্ক্রোনাস অপারেশনের ফলাফল তার প্রতিক্রিয়া, সেই অপারেশনগুলির স্থিতি সরাসরি Status বার্তা ব্যবহার করে উপস্থাপন করা উচিত।

  • লগিং। কিছু এপিআই ত্রুটি লগগুলিতে সংরক্ষণ করা হলে, নিরাপত্তা/গোপনীয়তার কারণে প্রয়োজনীয় যেকোনো স্ট্রিপিংয়ের পরে বার্তার Status সরাসরি ব্যবহার করা যেতে পারে।

JSON প্রতিনিধিত্ব
{
  "code": number,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
ক্ষেত্র
code

number

স্ট্যাটাস কোড, যা google.rpc.Code এর একটি enum মান হওয়া উচিত।

message

string

একটি বিকাশকারী-মুখী ত্রুটি বার্তা, যা ইংরেজিতে হওয়া উচিত। যেকোন ব্যবহারকারী-মুখী ত্রুটি বার্তা স্থানীয়করণ করা উচিত এবং google.rpc.Status.details ক্ষেত্রে পাঠানো উচিত, অথবা ক্লায়েন্ট দ্বারা স্থানীয়করণ করা উচিত।

details[]

object

ত্রুটির বিবরণ বহন করে এমন বার্তাগুলির একটি তালিকা৷ APIs ব্যবহার করার জন্য বার্তা প্রকারের একটি সাধারণ সেট আছে।

একটি নির্বিচারী ধরনের ক্ষেত্র ধারণকারী একটি বস্তু. একটি অতিরিক্ত ক্ষেত্র "@type" এ টাইপ সনাক্তকারী একটি URI রয়েছে৷ উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }