正在处理REST API服务器响应



我已经使用REST API CodeIgniter工作了一年多,通常当我想要返回任何响应时,我会为所有类型的请求返回200。我知道为所有响应提供了状态代码,但实际上我很想知道,如果我为所有响应使用200,这是错误的吗?并用truefalse确定数据状态。

这是我一直使用的示例代码。假设检查用户是否存在。

CodeIgniter REST API

$user = [ 'id' => 1, 'name' => 'John Doe' ];
$this->response([
'status' => !empty($user) ? true : false,
'user' => $user
], REST_Controller::HTTP_OK);

React Native

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,yes处理代码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')
}

相关内容

  • 没有找到相关文章

最新更新