সূচী
-
BadRequest(বার্তা) -
BadRequest.FieldViolation(বার্তা) -
Code(এনাম) -
ErrorInfo(বার্তা) -
Help(বার্তা) -
Help.Link(বার্তা) -
LocalizedMessage(বার্তা) -
RequestInfo(বার্তা) -
Status(বার্তা)
খারাপ অনুরোধ
ক্লায়েন্টের অনুরোধের ত্রুটি বর্ণনা করে। এই ধরনের ত্রুটি অনুরোধের বাক্যগঠনগত দিকগুলোর উপর আলোকপাত করে।
| ক্ষেত্র | |
|---|---|
field_violations[] | ক্লায়েন্টের অনুরোধে থাকা সমস্ত লঙ্ঘন বর্ণনা করে। |
ক্ষেত্র লঙ্ঘন
একটি একক ত্রুটিপূর্ণ অনুরোধ ফিল্ড বর্ণনা করতে ব্যবহৃত এক ধরনের বার্তা।
| ক্ষেত্র | |
|---|---|
field | একটি পাথ যা রিকোয়েস্ট বডির কোনো ফিল্ডে নিয়ে যায়। এর ভ্যালুটি হবে ডট দ্বারা পৃথক করা আইডেন্টিফায়ারের একটি ক্রম, যা একটি প্রোটোকল বাফার ফিল্ডকে শনাক্ত করে। নিম্নলিখিত বিষয়গুলো বিবেচনা করুন: এই উদাহরণে, 'proto'
JSON-এ একই মানগুলি নিম্নরূপে উপস্থাপন করা হয়:
|
description | রিকোয়েস্ট এলিমেন্টটি কেন খারাপ, তার একটি বিবরণ। |
reason | ফিল্ড-লেভেল ত্রুটির কারণ। এটি একটি ধ্রুবক মান যা ফিল্ড-লেভেল ত্রুটির প্রত্যক্ষ কারণ শনাক্ত করে। এটি google.rpc.ErrorInfo.domain-এর আওতার মধ্যে FieldViolation-এর ধরনকে অনন্যভাবে শনাক্ত করবে। এটি সর্বাধিক ৬৩ অক্ষরের হতে হবে এবং |
localized_message | ফিল্ড-স্তরের ত্রুটির জন্য একটি স্থানীয় ত্রুটি বার্তা প্রদান করে, যা এপিআই ব্যবহারকারীকে নিরাপদে ফেরত পাঠানো যায়। |
কোড
gRPC API-এর জন্য প্রমিত ত্রুটি কোডসমূহ।
কখনও কখনও একাধিক এরর কোড প্রযোজ্য হতে পারে। সার্ভিসগুলোর উচিত সবচেয়ে সুনির্দিষ্ট এরর কোডটি রিটার্ন করা। উদাহরণস্বরূপ, যদি উভয় কোডই প্রযোজ্য হয়, তবে FAILED_PRECONDITION পরিবর্তে OUT_OF_RANGE অগ্রাধিকার দিন। একইভাবে, FAILED_PRECONDITION পরিবর্তে NOT_FOUND বা ALREADY_EXISTS অগ্রাধিকার দিন।
| এনাম | |
|---|---|
OK | কোনো ত্রুটি নয়; সফল হলে ফেরত দেওয়া হয়। HTTP ম্যাপিং: 200 OK |
CANCELLED | অপারেশনটি বাতিল করা হয়েছিল, সাধারণত ফোনকারীর দ্বারাই। HTTP ম্যাপিং: 499 ক্লায়েন্ট অনুরোধ বন্ধ করেছে |
UNKNOWN | অজানা ত্রুটি। উদাহরণস্বরূপ, অন্য কোনো অ্যাড্রেস স্পেস থেকে প্রাপ্ত একটি HTTP ম্যাপিং: 500 অভ্যন্তরীণ সার্ভার ত্রুটি |
INVALID_ARGUMENT | ক্লায়েন্ট একটি অবৈধ আর্গুমেন্ট নির্দিষ্ট করেছে। উল্লেখ্য যে, এটি HTTP ম্যাপিং: 400 ত্রুটিপূর্ণ অনুরোধ |
DEADLINE_EXCEEDED | অপারেশনটি সম্পন্ন হওয়ার আগেই সময়সীমা শেষ হয়ে গেছে। যেসব অপারেশন সিস্টেমের অবস্থা পরিবর্তন করে, সেগুলো সফলভাবে সম্পন্ন হলেও এই ত্রুটিটি প্রদর্শিত হতে পারে। উদাহরণস্বরূপ, সার্ভার থেকে একটি সফল প্রতিক্রিয়া আসতে এতটা দেরি হতে পারে যে সময়সীমা শেষ হয়ে গেছে। HTTP ম্যাপিং: ৫০৪ গেটওয়ে টাইমআউট |
NOT_FOUND | অনুরোধকৃত কোনো সত্তা (যেমন, ফাইল বা ডিরেক্টরি) খুঁজে পাওয়া যায়নি। সার্ভার ডেভেলপারদের জন্য দ্রষ্টব্য: যদি ব্যবহারকারীদের একটি সম্পূর্ণ শ্রেণীর জন্য কোনো অনুরোধ প্রত্যাখ্যান করা হয়, যেমন পর্যায়ক্রমিক ফিচার রোলআউট বা অ-ডকুমেন্টেড অনুমতি তালিকার ক্ষেত্রে, HTTP ম্যাপিং: 404 পাওয়া যায়নি |
ALREADY_EXISTS | ক্লায়েন্ট যে সত্তাটি তৈরি করার চেষ্টা করেছে (যেমন, ফাইল বা ডিরেক্টরি), সেটি ইতিমধ্যেই বিদ্যমান। HTTP ম্যাপিং: ৪০৯ দ্বন্দ্ব |
PERMISSION_DENIED | আহ্বানকারীর নির্দিষ্ট অপারেশনটি সম্পাদন করার অনুমতি নেই। কোনো রিসোর্স নিঃশেষ হয়ে যাওয়ার কারণে প্রত্যাখ্যানের ক্ষেত্রে HTTP ম্যাপিং: ৪০৩ নিষিদ্ধ |
UNAUTHENTICATED | অপারেশনটির জন্য অনুরোধটিতে বৈধ প্রমাণীকরণ তথ্য নেই। HTTP ম্যাপিং: ৪০১ অননুমোদিত |
RESOURCE_EXHAUSTED | কোনো একটি রিসোর্স শেষ হয়ে গেছে, হতে পারে তা ব্যবহারকারী-ভিত্তিক কোটা, অথবা পুরো ফাইল সিস্টেমেই জায়গা নেই। HTTP ম্যাপিং: 429 অতিরিক্ত অনুরোধ |
FAILED_PRECONDITION | অপারেশনটি প্রত্যাখ্যান করা হয়েছে কারণ অপারেশনটি সম্পাদনের জন্য সিস্টেমটি প্রয়োজনীয় অবস্থায় নেই। উদাহরণস্বরূপ, যে ডিরেক্টরিটি মুছে ফেলা হবে সেটি খালি নয়, কোনো নন-ডিরেক্টরিতে rmdir অপারেশন প্রয়োগ করা হয়েছে, ইত্যাদি। সার্ভিস ইমপ্লিমেন্টররা HTTP ম্যাপিং: 400 ত্রুটিপূর্ণ অনুরোধ |
ABORTED | অপারেশনটি বাতিল করা হয়েছিল, সাধারণত কনকারেন্সি সংক্রান্ত কোনো সমস্যার কারণে, যেমন সিকোয়েন্সার চেক ব্যর্থতা বা ট্রানজ্যাকশন বাতিল হওয়া। HTTP ম্যাপিং: ৪০৯ দ্বন্দ্ব |
OUT_OF_RANGE | অপারেশনটি বৈধ সীমার বাইরে করার চেষ্টা করা হয়েছিল। যেমন, ফাইলের শেষ প্রান্তের বাইরে খোঁজা বা পড়া। HTTP ম্যাপিং: 400 ত্রুটিপূর্ণ অনুরোধ |
UNIMPLEMENTED | এই পরিষেবাতে অপারেশনটি বাস্তবায়িত বা সমর্থিত/সক্রিয় নয়। HTTP ম্যাপিং: ৫০১ বাস্তবায়িত হয়নি |
INTERNAL | অভ্যন্তরীণ ত্রুটি। এর অর্থ হলো, অন্তর্নিহিত সিস্টেমের প্রত্যাশিত কিছু অপরিবর্তনীয়তা লঙ্ঘিত হয়েছে। এই ত্রুটি কোডটি গুরুতর ত্রুটির জন্য সংরক্ষিত। HTTP ম্যাপিং: 500 অভ্যন্তরীণ সার্ভার ত্রুটি |
UNAVAILABLE | পরিষেবাটি বর্তমানে অনুপলব্ধ। এটি সম্ভবত একটি সাময়িক অবস্থা, যা ব্যাকঅফ সহ পুনরায় চেষ্টা করে ঠিক করা যেতে পারে। মনে রাখবেন যে নন-আইডেমপোটেন্ট অপারেশনগুলো পুনরায় চেষ্টা করা সবসময় নিরাপদ নয়। HTTP ম্যাপিং: ৫০৩ পরিষেবা অনুপলব্ধ |
DATA_LOSS | অপূরণীয় ডেটা ক্ষতি বা বিকৃতি। HTTP ম্যাপিং: 500 অভ্যন্তরীণ সার্ভার ত্রুটি |
ত্রুটির তথ্য
ত্রুটির কারণটি সুসংগঠিত বিশদ বিবরণসহ বর্ণনা করে।
'pubsub.googleapis.com' এপিআই সক্রিয় না থাকা অবস্থায় সেটির সাথে যোগাযোগ করার সময় একটি ত্রুটির উদাহরণ:
{ "reason": "API_DISABLED"
"domain": "googleapis.com"
"metadata": {
"resource": "projects/123",
"service": "pubsub.googleapis.com"
}
}
এই প্রতিক্রিয়া থেকে বোঝা যায় যে pubsub.googleapis.com API-টি সক্রিয় করা নেই।
যে অঞ্চলে স্টক নেই, সেখানে স্প্যানার ইনস্ট্যান্স তৈরি করার চেষ্টা করলে যে এররটি আসে তার একটি উদাহরণ:
{ "reason": "STOCKOUT"
"domain": "spanner.googleapis.com",
"metadata": {
"availableRegions": "us-central1,us-east2"
}
}
| ক্ষেত্র | |
|---|---|
reason | ত্রুটির কারণ। এটি একটি ধ্রুবক মান যা ত্রুটির প্রত্যক্ষ কারণ শনাক্ত করে। ত্রুটির কারণগুলো একটি নির্দিষ্ট ত্রুটির ডোমেনের মধ্যে অনন্য হয়। এটি সর্বাধিক ৬৩ অক্ষরের হতে হবে এবং |
domain | যে যৌক্তিক গোষ্ঠীর মধ্যে 'কারণটি' অন্তর্ভুক্ত। এরর ডোমেইন সাধারণত সেই টুল বা প্রোডাক্টের নিবন্ধিত পরিষেবার নাম হয়, যা এররটি তৈরি করে। উদাহরণ: "pubsub.googleapis.com"। যদি এররটি কোনো সাধারণ ইনফ্রাস্ট্রাকচার দ্বারা তৈরি হয়, তবে এরর ডোমেইনটি অবশ্যই একটি বিশ্বব্যাপী অনন্য মান হতে হবে যা ইনফ্রাস্ট্রাকচারটিকে শনাক্ত করে। গুগল এপিআই ইনফ্রাস্ট্রাকচারের জন্য, এরর ডোমেইন হলো "googleapis.com"। |
metadata | এই ত্রুটি সম্পর্কে অতিরিক্ত কাঠামোগত বিবরণ। কী-গুলোকে অবশ্যই |
সাহায্য
ডকুমেন্টেশন দেখার জন্য অথবা কোনো আউট-অফ-ব্যান্ড অ্যাকশন সম্পাদন করার জন্য লিঙ্ক প্রদান করে।
উদাহরণস্বরূপ, যদি কোটা চেক এই ত্রুটি সহ ব্যর্থ হয় যে কলিং প্রজেক্টটি অ্যাক্সেস করা পরিষেবাটি সক্রিয় করেনি, তবে এতে একটি URL থাকতে পারে যা সরাসরি ডেভেলপার কনসোলের সঠিক জায়গায় নির্দেশ করে, যেখানে বিটটি ফ্লিপ করা যায়।
| ক্ষেত্র | |
|---|---|
links[] | বর্তমান ত্রুটিটি কীভাবে সমাধান করা যায়, সে বিষয়ে অতিরিক্ত তথ্যের জন্য URL(গুলি)। |
লিঙ্ক
একটি ইউআরএল লিঙ্কের বর্ণনা দেয়।
| ক্ষেত্র | |
|---|---|
description | লিঙ্কটি কী সুবিধা প্রদান করে তা বর্ণনা করে। |
url | লিঙ্কটির ইউআরএল। |
স্থানীয় বার্তা
একটি স্থানীয় ত্রুটি বার্তা প্রদান করে যা ব্যবহারকারীকে নিরাপদে ফেরত পাঠানো যায় এবং এটিকে একটি RPC ত্রুটির সাথে সংযুক্ত করা যেতে পারে।
| ক্ষেত্র | |
|---|---|
locale | https://www.rfc-editor.org/rfc/bcp/bcp47.txt -এ সংজ্ঞায়িত স্পেসিফিকেশন অনুযায়ী লোকেল ব্যবহার করা হয়। উদাহরণস্বরূপ: "en-US", "fr-CH", "es-MX"। |
message | উপরোক্ত লোকেলে স্থানীয়কৃত ত্রুটির বার্তা। |
অনুরোধ তথ্য
এতে অনুরোধ সম্পর্কিত মেটাডেটা থাকে, যা ক্লায়েন্টরা কোনো বাগ রিপোর্ট করার সময় বা অন্য কোনো ধরনের মতামত জানানোর সময় সংযুক্ত করতে পারেন।
| ক্ষেত্র | |
|---|---|
request_id | একটি অস্বচ্ছ স্ট্রিং যা শুধুমাত্র এটিকে তৈরি করা পরিষেবা দ্বারাই ব্যাখ্যা করা উচিত। উদাহরণস্বরূপ, এটি পরিষেবার লগগুলিতে অনুরোধগুলি সনাক্ত করতে ব্যবহার করা যেতে পারে। |
serving_data | এই অনুরোধটি সম্পন্ন করতে ব্যবহৃত যেকোনো ডেটা। উদাহরণস্বরূপ, একটি এনক্রিপ্টেড স্ট্যাক ট্রেস যা ডিবাগিংয়ের জন্য পরিষেবা প্রদানকারীর কাছে ফেরত পাঠানো যেতে পারে। |
অবস্থা
Status টাইপ একটি লজিক্যাল এরর মডেল নির্ধারণ করে যা REST API এবং RPC API সহ বিভিন্ন প্রোগ্রামিং এনভায়রনমেন্টের জন্য উপযুক্ত। এটি gRPC দ্বারা ব্যবহৃত হয়। প্রতিটি Status মেসেজে তিনটি ডেটা থাকে: এরর কোড, এরর মেসেজ এবং এররের বিস্তারিত বিবরণ।
এই এরর মডেল এবং এটি নিয়ে কীভাবে কাজ করতে হয়, সে সম্পর্কে আরও জানতে আপনি এপিআই ডিজাইন গাইড দেখতে পারেন।
| ক্ষেত্র | |
|---|---|
code | স্ট্যাটাস কোডটি |
message | ডেভেলপারদের জন্য একটি ত্রুটির বার্তা, যা ইংরেজিতে হওয়া উচিত। ব্যবহারকারীদের জন্য যেকোনো ত্রুটির বার্তা স্থানীয়করণ করে |
details[] | ত্রুটির বিবরণ বহনকারী বার্তাগুলির একটি তালিকা। এপিআই (API) ব্যবহারের জন্য কিছু সাধারণ বার্তা প্রকার রয়েছে। |