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