ดัชนี
รหัส
รหัสข้อผิดพลาดตามรูปแบบบัญญัติสำหรับ gRPC API
บางครั้งอาจมีรหัสข้อผิดพลาดหลายอย่าง บริการควรส่งคืนรหัสข้อผิดพลาดที่เฉพาะเจาะจงที่สุดที่เกี่ยวข้อง เช่น โปรดเลือก OUT_OF_RANGE
มากกว่า FAILED_PRECONDITION
หากรหัสทั้งสองแบบมีผล ใช้ 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 โปรดทราบว่าการลองดำเนินการที่ไม่ใช่แบบกำหนดอีกครั้งอาจไม่ปลอดภัยเสมอไป ดูหลักเกณฑ์ด้านบนในการตัดสินใจเลือก การแมป HTTP: 503 บริการไม่พร้อมใช้งาน |
DATA_LOSS |
ข้อมูลเสียหายหรือสูญหายโดยกู้คืนไม่ได้ การจับคู่ HTTP: 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์ |
สถานะ
ประเภท Status
กำหนดโมเดลข้อผิดพลาดเชิงตรรกะที่เหมาะสำหรับสภาพแวดล้อมการเขียนโปรแกรมที่แตกต่างกัน ซึ่งรวมถึง REST API และ RPC API ใช้โดย gRPC ข้อความ Status
แต่ละข้อความจะมีข้อมูล 3 อย่าง ได้แก่ รหัสข้อผิดพลาด ข้อความแสดงข้อผิดพลาด และรายละเอียดข้อผิดพลาด
ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบข้อผิดพลาดนี้และวิธีทำงานกับรูปแบบดังกล่าวได้ในคู่มือการออกแบบ API
ช่อง | |
---|---|
code |
รหัสสถานะ ซึ่งควรเป็นค่า enum ของ |
message |
ข้อความแสดงข้อผิดพลาดที่ส่งถึงนักพัฒนาซอฟต์แวร์ ซึ่งควรเป็นภาษาอังกฤษ ข้อความแสดงข้อผิดพลาดที่แสดงต่อผู้ใช้ควรแปลและส่งในช่อง |
details[] |
รายการข้อความที่มีรายละเอียดข้อผิดพลาด มีชุดประเภทข้อความที่ใช้กันโดยทั่วไปสำหรับ API |