ดัชนี
รหัส
รหัสข้อผิดพลาดตามรูปแบบบัญญัติสำหรับ gRPC API
บางครั้งอาจมีรหัสข้อผิดพลาดหลายรายการ บริการควรจะแสดงรหัสข้อผิดพลาดที่เกี่ยวข้องที่สุด เช่น ต้องการ OUT_OF_RANGE
มากกว่า FAILED_PRECONDITION
หากใช้รหัสทั้ง 2 รหัส ในทำนองเดียวกัน ให้ใช้ NOT_FOUND
หรือ ALREADY_EXISTS
มากกว่า FAILED_PRECONDITION
Enum | |
---|---|
OK |
ไม่ใช่ข้อผิดพลาด แสดงผลสำเร็จ การแมป HTTP: 200 OK |
CANCELLED |
การดำเนินการถูกยกเลิก ซึ่งโดยปกติแล้วโดยผู้โทร การแมป HTTP: คำขอที่ปิดของไคลเอ็นต์แล้ว 499 |
UNKNOWN |
ข้อผิดพลาดที่ไม่รู้จัก ตัวอย่างเช่น ข้อผิดพลาดนี้อาจแสดงขึ้นเมื่อค่า การแมป HTTP: 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์ |
INVALID_ARGUMENT |
ไคลเอ็นต์ระบุอาร์กิวเมนต์ไม่ถูกต้อง โปรดทราบว่าข้อมูลนี้แตกต่างจาก การแมป HTTP: 400 คำขอไม่ถูกต้อง |
DEADLINE_EXCEEDED |
กําหนดเวลาหมดอายุก่อนที่การดําเนินการจะเสร็จสมบูรณ์ สำหรับการดำเนินการที่เปลี่ยนสถานะของระบบ ข้อผิดพลาดนี้อาจได้รับการส่งกลับแม้จะดำเนินการสำเร็จแล้วก็ตาม ตัวอย่างเช่น การตอบกลับที่สำเร็จจากเซิร์ฟเวอร์อาจล่าช้าไปนานพอสมควรหมดอายุ การแมป HTTP: เกตเวย์ 504 หมดเวลา |
NOT_FOUND |
ไม่พบเอนทิตีที่ขอบางรายการ (เช่น ไฟล์หรือไดเรกทอรี) หมายเหตุถึงนักพัฒนาซอฟต์แวร์เซิร์ฟเวอร์: ระบบอาจใช้ การแมป HTTP: 404 ไม่พบ |
ALREADY_EXISTS |
มีเอนทิตีที่ไคลเอ็นต์พยายามสร้าง (เช่น ไฟล์หรือไดเรกทอรี) อยู่แล้ว การแมป HTTP: 409 เกิดความขัดแย้ง |
PERMISSION_DENIED |
ผู้โทรไม่มีสิทธิ์ดำเนินการที่ระบุ ต้องไม่ใช้ การแมป HTTP: 403 Forbidden |
UNAUTHENTICATED |
คำขอไม่มีข้อมูลเข้าสู่ระบบการตรวจสอบสิทธิ์ที่ถูกต้องสำหรับการดำเนินการ การแมป HTTP: 401 ไม่ได้รับอนุญาต |
RESOURCE_EXHAUSTED |
ทรัพยากรบางส่วนหมดแล้ว ซึ่งอาจเป็นโควต้าสำหรับผู้ใช้แต่ละราย หรือระบบไฟล์ทั้งระบบไม่มีพื้นที่ว่าง การแมป HTTP: 429 มีคำขอมากเกินไป |
FAILED_PRECONDITION |
การดำเนินการถูกปฏิเสธเนื่องจากระบบไม่อยู่ในสถานะที่จำเป็นสำหรับการดำเนินการ เช่น ไดเรกทอรีที่จะลบไม่ว่างเปล่า จะมีการใช้การดำเนินการ rmdir กับที่ไม่ใช่ไดเรกทอรี เป็นต้น ผู้ติดตั้งใช้งานบริการจะใช้หลักเกณฑ์ต่อไปนี้ในการตัดสินใจเลือกระหว่าง การแมป HTTP: 400 คำขอไม่ถูกต้อง |
ABORTED |
ล้มเลิกการดำเนินการแล้ว โดยทั่วไปจะเกิดจากปัญหาเกิดขึ้นพร้อมกัน เช่น การตรวจสอบลำดับไม่สำเร็จหรือล้มเลิกธุรกรรม ดูหลักเกณฑ์ด้านบนเพื่อตัดสินใจระหว่าง การแมป HTTP: 409 เกิดความขัดแย้ง |
OUT_OF_RANGE |
มีการพยายามดำเนินการหลังจากช่วงที่ถูกต้อง เช่น การกรอวิดีโอหรือการอ่านที่สิ้นสุดไฟล์ ข้อผิดพลาดนี้ต่างจาก มีความคาบเกี่ยวกันเล็กน้อยระหว่าง การแมป HTTP: 400 คำขอไม่ถูกต้อง |
UNIMPLEMENTED |
ไม่ได้ใช้การดำเนินการนี้ หรือไม่รองรับ/เปิดใช้ในบริการนี้ การแมป HTTP: 501 ไม่มีการใช้งาน |
INTERNAL |
ข้อผิดพลาดภายใน ซึ่งหมายความว่าค่าคงที่บางส่วนที่ระบบพื้นฐานคาดไว้เสียหาย รหัสข้อผิดพลาดนี้สงวนไว้สำหรับข้อผิดพลาดร้ายแรง การแมป HTTP: 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์ |
UNAVAILABLE |
ไม่พร้อมให้บริการนี้ในขณะนี้ ปัญหานี้มักเป็นภาวะชั่วคราว ซึ่งแก้ไขได้โดยการลองอีกครั้งโดยใช้ Backoff โปรดทราบว่าการลองใหม่กับการดำเนินการที่ไม่ใช่ ID ชั่วคราวอาจไม่ปลอดภัยเสมอไป ดูหลักเกณฑ์ด้านบนเพื่อตัดสินใจระหว่าง การแมป HTTP: บริการ 503 ไม่พร้อมใช้งาน |
DATA_LOSS |
ข้อมูลสูญหายหรือเสียหายโดยกู้คืนไม่ได้ การแมป HTTP: 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์ |
สถานะ
ประเภท Status
กำหนดโมเดลข้อผิดพลาดเชิงตรรกะที่เหมาะกับสภาพแวดล้อมในการเขียนโปรแกรมแบบต่างๆ ซึ่งรวมถึง REST API และ RPC API gRPC ใช้ ข้อความ Status
แต่ละข้อความจะมีข้อมูล 3 อย่าง ได้แก่ รหัสข้อผิดพลาด ข้อความแสดงข้อผิดพลาด และรายละเอียดข้อผิดพลาด
คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบข้อผิดพลาดนี้และวิธีใช้รูปแบบดังกล่าวได้ในคู่มือการออกแบบ API
ช่อง | |
---|---|
code |
รหัสสถานะ ซึ่งควรเป็นค่า enum ของ |
message |
ข้อความแสดงข้อผิดพลาดที่นักพัฒนาแอปเห็น ซึ่งควรเป็นภาษาอังกฤษ ข้อความแสดงข้อผิดพลาดที่แสดงต่อผู้ใช้ควรแปลและส่งในช่อง |
details[] |
รายการข้อความที่มีรายละเอียดข้อผิดพลาด API จะใช้ชุดประเภทข้อความที่พบได้ทั่วไป |