有以下两个路由 因为用户鉴权是做在headers中的 所以.. 对自己的操作.. 应该不会有 user/{userId} 这个层级了
按道理来说,第二个路由 理想中应该是
[PUT] image
但是因为restful 的缘故 PUT 方法后面必须加一个参数 ,所以 我很难受.. 就换成post了
$router->delete('image/{imageId}', ['as' => 'xxx', 'uses' => 'xxx@xxx']);
# 这里用post的原因 在上面说明了 我用 image/{id} 这个{id}含义模糊不清又显得多余
$router->post('image', ['as' => 'xxx', 'uses' => 'xx@xxx']);
加入你访问 用户 接口..这个用户不存在 我会返回 返回如下Json 并且Http 响应是 404
# 这里的http响应是404
{
"code": 4040000,
"message": "Not Found",
"data": []
}
但是这里就有问题了.. 因为客户端访问一个资源的状态码也是404 所以.. 容易造成客户端判断的问题[到底是他们不做呢..还是怎么地.反正最后因为业务太急] 我最后Http状态码 换成了 200
http 204状态码 是不能返回响应的... 所以 当某个资源删除了之后.. 我就返回 201 http状态码了 因为这样才能返回响应啊
{
"code": 2000000,
"message": "OK",
"data":[]
}
{
"code": 4010000,
"message": "not found authenticate in headers",
"details": {}
}
对于这点 我其实有点纠结的.. 我又想让客户端 使用 服务端提供的 message (毕竟不像让他们写死) 但是 当 2xx 这种请求 其实返回 code message 又很没用 当然只要不是2xx的响应 都应该有 错误状态码 错误消息
如果我现在再来定义.. 我可能会保留
code message data
三个层级..
if(钱不够){
return utils()->apiResponse()->forbidden('余额不足');
}
这里的4030000 我定义的时候是一个通用的code 代表 权限不够..被拒绝..
这里我返回了一个通用的code 4030000,其实这样是不对的.. 这样客户端就会拿着4030000 作为钱不足的判断 如果说,在这个判断前面,,还有其他 403 权限类的错误.. 我再返回 4030000 就容易导致让客户端以为是钱不够...