Chỉ mục
Mã
Mã lỗi chuẩn cho các API gRPC.
Đôi khi, có thể áp dụng nhiều mã lỗi. Dịch vụ phải trả về mã lỗi cụ thể nhất có thể áp dụng. Ví dụ: ưu tiên OUT_OF_RANGE
hơn FAILED_PRECONDITION
nếu cả hai mã đều áp dụng. Tương tự, hãy ưu tiên NOT_FOUND
hoặc ALREADY_EXISTS
hơn FAILED_PRECONDITION
.
Enum | |
---|---|
OK |
Không phải lỗi; được trả về khi thành công. Ánh xạ HTTP: 200 OK |
CANCELLED |
Thao tác đã bị huỷ, thường là do phương thức gọi. Ánh xạ HTTP: 499 Yêu cầu đã đóng của ứng dụng |
UNKNOWN |
Lỗi không xác định. Ví dụ: lỗi này có thể được trả về khi một giá trị Ánh xạ HTTP: 500 Lỗi máy chủ nội bộ |
INVALID_ARGUMENT |
Ứng dụng khách chỉ định đối số không hợp lệ. Xin lưu ý rằng thuộc tính này khác với Ánh xạ HTTP: 400 Yêu cầu không hợp lệ |
DEADLINE_EXCEEDED |
Thời hạn đã hết trước khi thao tác có thể hoàn tất. Đối với các thao tác thay đổi trạng thái của hệ thống, lỗi này có thể được trả về ngay cả khi thao tác đã hoàn tất thành công. Ví dụ: phản hồi thành công từ máy chủ có thể bị trì hoãn đủ lâu để thời hạn hết hạn. Ánh xạ HTTP: Hết thời gian chờ của cổng 504 |
NOT_FOUND |
Không tìm thấy một số thực thể được yêu cầu (ví dụ: tệp hoặc thư mục). Lưu ý dành cho nhà phát triển máy chủ: nếu một yêu cầu bị từ chối đối với toàn bộ một lớp người dùng, chẳng hạn như việc triển khai tính năng dần dần hoặc danh sách cho phép chưa được ghi nhận, thì bạn có thể sử dụng Ánh xạ HTTP: 404 Không tìm thấy |
ALREADY_EXISTS |
Thực thể mà ứng dụng khách tìm cách tạo (ví dụ: tệp hoặc thư mục) đã tồn tại. Ánh xạ HTTP: Xung đột 409 |
PERMISSION_DENIED |
Phương thức gọi không có quyền thực thi thao tác đã chỉ định. Không được sử dụng Ánh xạ HTTP: 403 Bị cấm |
UNAUTHENTICATED |
Yêu cầu không có thông tin xác thực hợp lệ cho thao tác này. Ánh xạ HTTP: 401 Không được phép |
RESOURCE_EXHAUSTED |
Một số tài nguyên đã hết, có thể là hạn mức trên mỗi người dùng hoặc có thể toàn bộ hệ thống tệp đã hết dung lượng. Ánh xạ HTTP: 429 Quá nhiều yêu cầu |
FAILED_PRECONDITION |
Thao tác này bị từ chối vì hệ thống không ở trạng thái cần thiết để thực thi thao tác. Ví dụ: thư mục cần xoá không trống, thao tác rmdir được áp dụng cho một thư mục không phải là thư mục, v.v. Người triển khai dịch vụ có thể sử dụng các nguyên tắc sau để quyết định giữa Ánh xạ HTTP: 400 Yêu cầu không hợp lệ |
ABORTED |
Thao tác đã bị huỷ, thường là do vấn đề đồng thời như không kiểm tra được trình tự hoặc huỷ giao dịch. Hãy xem các nguyên tắc ở trên để quyết định giữa Ánh xạ HTTP: Xung đột 409 |
OUT_OF_RANGE |
Thao tác đã được thực hiện ngoài phạm vi hợp lệ. Ví dụ: tìm kiếm hoặc đọc quá cuối tệp. Không giống như Có một chút trùng lặp giữa Ánh xạ HTTP: 400 Yêu cầu không hợp lệ |
UNIMPLEMENTED |
Thao tác này không được triển khai hoặc không được hỗ trợ/bật trong dịch vụ này. Liên kết HTTP: 501 Chưa triển khai |
INTERNAL |
Lỗi nội bộ. Điều này có nghĩa là một số hằng số mà hệ thống cơ bản dự kiến đã bị phá vỡ. Mã lỗi này dành riêng cho các lỗi nghiêm trọng. Ánh xạ HTTP: 500 Lỗi máy chủ nội bộ |
UNAVAILABLE |
Dịch vụ này hiện không dùng được. Đây có thể là một tình trạng tạm thời và có thể được khắc phục bằng cách thử lại với thời gian đợi. Xin lưu ý rằng không phải lúc nào bạn cũng có thể thử lại các thao tác không idempotent một cách an toàn. Hãy xem các nguyên tắc ở trên để quyết định giữa Ánh xạ HTTP: 503 Không có dịch vụ |
DATA_LOSS |
Mất hoặc hư hỏng dữ liệu và không phục hồi được. Ánh xạ HTTP: 500 Lỗi máy chủ nội bộ |
Trạng thái
Loại Status
xác định một mô hình lỗi logic phù hợp với nhiều môi trường lập trình, bao gồm cả API REST và API RPC. gRPC sử dụng lớp này. Mỗi thông báo Status
chứa 3 phần dữ liệu: mã lỗi, thông báo lỗi và thông tin chi tiết về lỗi.
Bạn có thể tìm hiểu thêm về mô hình lỗi này và cách xử lý mô hình lỗi này trong Hướng dẫn thiết kế API.
Trường | |
---|---|
code |
Mã trạng thái, phải là giá trị enum của |
message |
Thông báo lỗi dành cho nhà phát triển, phải bằng tiếng Anh. Mọi thông báo lỗi hiển thị với người dùng đều phải được bản địa hoá và gửi trong trường |
details[] |
Danh sách thông báo chứa thông tin chi tiết về lỗi. Có một bộ các loại thông báo phổ biến để API sử dụng. |