รหัสข้อผิดพลาด Canonical สำหรับ 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 |
ไม่พร้อมให้บริการนี้ในขณะนี้ ซึ่งมักจะเป็นเงื่อนไขชั่วคราวที่แก้ไขได้โดยการลองอีกครั้งด้วยการหยุดชั่วคราว โปรดทราบว่าการลองดำเนินการที่ไม่ใช่แบบ Idempotent อีกครั้งอาจไม่ปลอดภัยเสมอไป ดูหลักเกณฑ์ด้านบนเพื่อเลือกระหว่าง การแมป HTTP: 503 ไม่พร้อมให้บริการ |
DATA_LOSS |
ข้อมูลสูญหายโดยกู้คืนไม่ได้หรือข้อมูลเสียหาย การแมป HTTP: 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์ |