Indeks
Kode
Kode error kanonis pada gRPC API.
Terkadang beberapa kode error dapat terjadi. Layanan seharusnya menampilkan kode error paling spesifik yang berlaku. Misalnya, lebih memilih menampilkan OUT_OF_RANGE
daripada FAILED_PRECONDITION
jika kedua kode berlaku. Demikian pula, untuk lebih memilih menampilkan NOT_FOUND
atau ALREADY_EXISTS
daripada FAILED_PRECONDITION
.
Enum | |
---|---|
OK |
Bukan error; ditampilkan jika berhasil. Pemetaan HTTP: 200 OK |
CANCELLED |
Operasi dibatalkan, biasanya oleh pemanggil. Pemetaan HTTP: 499 Client Closed Request |
UNKNOWN |
Error tidak diketahui. Misalnya, error ini dapat ditampilkan jika nilai Pemetaan HTTP: Error Server Internal 500 |
INVALID_ARGUMENT |
Klien menetapkan argumen yang tidak valid. Perhatikan bahwa ini berbeda dengan Pemetaan HTTP: 400 Permintaan Tidak Valid |
DEADLINE_EXCEEDED |
Batas waktu berakhir sebelum operasi selesai. Untuk operasi yang mengubah keadaan sistem, error ini mungkin ditampilkan, bahkan jika, operasi tersebut telah selesai. Sebagai contoh, respons berhasil dari suatu server dapat tertunda selama waktu yang cukup lama hingga tenggat waktu berakhir. Pemetaan HTTP: 504 Gateway Timeout |
NOT_FOUND |
Beberapa entity yang diminta (misalnya, file atau direktori) tidak ditemukan. Catatan bagi developer server: apabila suatu permintaan ditolak pada seluruh kelas pengguna, seperti peluncuran bertahap, atau daftar yang diberi akses, Pemetaan HTTP: 404 Not Found |
ALREADY_EXISTS |
Entitas yang coba dibuat oleh klien (misalnya, file atau direktori) sudah ada. Pemetaan HTTP: 409 Conflict |
PERMISSION_DENIED |
Pemanggil tidak memiliki izin untuk menjalankan operasi yang ditentukan. Pemetaan HTTP: 403 Forbidden |
UNAUTHENTICATED |
Permintaan tidak memiliki kredensial autentikasi operasi yang valid. Pemetaan HTTP: 401 Tidak Sah |
RESOURCE_EXHAUSTED |
Beberapa resource telah habis, kemungkinan adalah kuota per pengguna, atau kemungkinan seluruh sistem file kehabisan ruang. Pemetaan HTTP: 429 Too Many Requests |
FAILED_PRECONDITION |
Operasi tersebut ditolak karena sistem tidak dalam keadaan dibutuhkan untuk menjalankan operasi. Misalnya, direktori yang akan dihapus tidak kosong, operasi rmdir diterapkan pada non-direktori, dll. Pelaksana layanan dapat menggunakan panduan berikut untuk menentukan manakah yang paling sesuai di antara Pemetaan HTTP: 400 Permintaan Tidak Valid |
ABORTED |
Operasi dibatalkan, umumnya karena masalah konkurensi seperti kegagalan pemeriksaan pengurut atau pembatalan transaksi. Lihat panduan di atas untuk menentukan manakah yang sesuai antara Pemetaan HTTP: 409 Conflict |
OUT_OF_RANGE |
Upaya operasi dilakukan melampaui rentang yang valid. Mis., mencari tahu atau membaca melampaui akhir file. Tidak seperti Terdapat sedikit tumpang-tindih antara Pemetaan HTTP: 400 Permintaan Tidak Valid |
UNIMPLEMENTED |
Operasi tidak diterapkan atau tidak didukung/diaktifkan dalam layanan ini. Pemetaan HTTP: 501 Not Implemented |
INTERNAL |
Error internal. Artinya beberapa invarian yang diperlukan oleh sistem pokok telah rusak. Kode error ini disediakan untuk error yang bersifat serius. Pemetaan HTTP: Error Server Internal 500 |
UNAVAILABLE |
Saat ini layanan tidak tersedia. Kemungkinan besar ini hanya kondisi sementara, yang dapat diperbaiki dengan mencoba kembali menggunakan backoff. Perlu diketahui bahwa mencoba kembali operasi non-idempoten tidak selalu aman. Lihat panduan di atas untuk menentukan manakah yang sesuai antara Pemetaan HTTP: 503 Layanan Tidak Tersedia |
DATA_LOSS |
Data hilang atau rusak yang tidak dapat dipulihkan. Pemetaan HTTP: Error Server Internal 500 |
Status
Jenis Status
menentukan model error logis yang cocok untuk berbagai lingkungan pemrograman, meliputi REST API dan RPC API. Jenis error ini digunakan oleh gRPC. Setiap pesan Status
berisi tiga bagian data: kode error, pesan error, dan detail error.
Anda dapat mencari tahu lebih lanjut tentang model error ini dan cara penanganannya di Panduan Desain API.
Kolom | |
---|---|
code |
Kode status, harus berupa nilai enum dari |
message |
Pesan error yang ditampilkan ke developer dan seharusnya dalam bahasa Inggris. Setiap pesan error yang ditampilkan kepada pengguna harus dilokalkan dan dikirim di kolom |
details[] |
Daftar pesan yang membawa detail error. Ada seperangkat jenis pesan umum untuk digunakan API. |