在RESTful架构中,每个网址代表一种资源,所以网址中不能有动词,只能有名词。一般来说API中的名词应该使用复数。
对于资源的操作(CURD),由HTTP动词表示。
》GET:从服务器取出资源
》POST: 在服务器新建一个资源
》PUT : 在服务器更新资源(客户端提供改变后的完整资源)
》PATCH:在服务器更新资源(客户端提供改变的属性)
》DELETE: 在服务器删除资源
如果记录数量很多,服务器不可能都将他们返回给用户。API应该提供参数,过滤返回结果。
eg:
?offset=10: 指定返回记录的开始位置
使用标准的HTTP状态码
》200 OK 服务器成功返回用户请求的数据,该操作是幂等的
》201 CREATED 新建或修改数据成功
》204 NO CONTENT 删除数据成功
》400 BAD REQUEST 用户发出的请求有错误
》401 Unauthorized表示用户没有认证,无法进行当前操作
》403 Forbidden 表示用户访问是被禁止的
》422 Unprocesable Entity 当创建一个对象时,发生一个验证错误
》500 INTERNAL SERVER ERROR服务器发生错误,用户将无法判断发出的请求是否成功。
如果状态码是4XX或者5XX,就应该向用户返回出错信息,一般来说,返回的信息中将error作为键名,出错信息作为键值即可:
{
“error”: "参数错误"
}
针对不同操作,服务器向用户返回的结果应该符合一下规范:
》GET/collections:返回资源对象的列表(数组)
》GET/collections/identity:返回单个资源对象,如果该资源不存在,则返回404状态码
》POST/collections:返回新生成的资源对象
》PUT/collections/identity:返回完整的资源对象
》PATCH/collections/identity: 返回被修改的属性
》DELETE/collections/identity:返回204状态码 和 一个空的响应体
转载于:https://www.cnblogs.com/xiaoQ0725/p/8110513.html