API接口数据规范
在日常开发中,一个优雅的API,必须提供简单明了的响应值,然后根据状态码就可以大概知道问题的所在。这里主要整理一下HTTP状态码和自定义状态码。
1、HTTP状态码
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。
常见的HTTP状态码有:
200-请求成功。
301-资源(网页等)被永久转移到其它URL。
403-服务器拒绝访问。验证身份通过了,但是资源没有权限进行操作。
404-请求资源(网页等)不存在。
500-内部服务器错误。
504-网关超时。服务器作为网关或代理,但是没有及时从上游服务器收到请求。
2、HTTP状态码分类
HTTP状态码可以分为5类:消息响应、成功响应、重定向、客户端错误、服务器错误。
状态 |
描述 |
100 |
继续。客户端应继续其请求 |
101 |
切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议。 |
200 |
请求成功。一般用于GET与POST请求。 |
201 |
已创建。成功请求并创建了新的资源。 |
202 |
已接受。已经接受请求,但未处理完成。 |
203 |
非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本。 |
204 |
无内容。服务器成功处理,但未返回内容。 |
205 |
重置内容。 |
300 |
多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 |
301 |
永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。 |
302 |
临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI。 |
303 |
查看其它地址。与301类似。使用GET和POST请求查看。 |
304 |
未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。 |
305 |
使用代理。所请求的资源必须通过代理访问。 |
400 |
客户端请求的语法错误,服务器无法理解。 |
401 |
用户身份认证失败。 |
402 |
保留,将来使用。 |
403 |
验证身份通过了,但是资源没有权限进行操作。 |
404 |
服务器无法根据客户端的请求找到资源(网页)。 |
405 |
客户端请求中的方法被禁止。 |
500 |
服务器内部错误,无法完成请求。 |
501 |
服务器不支持请求的功能,无法完成请求。 |
502 |
作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
503 |
由于超载或系统维护,服务器暂时的无法处理客户端的请求。 |
504 |
服务器作为网关或代理,但是没有及时从上游服务器收到请求。 |
3、自定义响应状态码规范
后端返回给前端一般使用json格式,定义如下:
{ #返回状态码 Code:integer, #返回信息描述 message:string, #返回值 data:object }