[英]Handling REST API server response
我已經使用 REST API CodeIgniter 一年多了,通常當我想返回任何響應時,我會為所有類型的請求返回200
。 我知道所有響應都提供了狀態代碼,但我實際上很想知道,如果我對所有響應都使用200
是錯誤的嗎? 並用true
和false
確定數據狀態。
這是我一直使用的示例代碼。 假設要檢查用戶是否存在。
CodeIgniter REST API
$user = [ 'id' => 1, 'name' => 'John Doe' ];
$this->response([
'status' => !empty($user) ? true : false,
'user' => $user
], REST_Controller::HTTP_OK);
反應本機
try {
const res = await axios.get('https://www.example.com/retrieve-user?user_id=3');
if (res.status == 200){
if(res.data.status == true){
// user found
} else {
// user not found
}
} else {
alert('Internal server error.')
}
} catch (err) {
console.error(err);
}
基於這個例子,我其實是根據狀態碼200
來判斷服務器是否有錯誤(代碼錯誤、無效請求等)。
所以我的問題是,堅持這種方法可以嗎?
鑒於您的 API,是處理代碼200
似乎就足夠了,因為您的 API 可能不會返回任何其他 HttpCode。
給定一個更大的 API(甚至是簡單的),沒有.
如果沒有找到具有給定 id 的用戶,您的 API 可能會返回204
/ 404
。
如果您的 API 正在部署(且不可用)或維護中,您的 API 可能會返回503
,您可以在 30 秒后重試。
如果缺少給定的標頭(Content-Type ...),您的 API 可能會拒絕請求並返回400
...
編輯 1:
if (res.status == 200){
// user found
} else if (res.status == 204) {
// user not found
} else {
alert('An error occured')
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.