RESTful api设计

190 阅读2分钟

①接口要求无状态,任意一个Web请求必须完全与其他请求隔离,当客户端发起请求时,消息本身包含了服务端识别这一请求上下文所需的全部信息。每个资源的请求都不依赖其他资源,都是可寻址的至少有一个url与其对应。
②RESTful架构风格规定,数据的元操作,即CRUD操作,分别对应于HTTP方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。
③采用HTTP方法发生请求,数据采用标准格式,基于统一接口和通用载体,客户端和服务器用不同技术也可通信。body传参有表单和json两种形式,表单一是可以获取文件,二是在可以取对象里的单个字段进行验证,但是接口不能多次复用。而json传的是key value,以字符串存储,需要bind进行转义,可以一次性操作对象的所有属性
④接口规范:
1.URI
不用大写 用中杠-不用下杠_ 参数列表要encode URI中的名词表示资源集合,使用复数形式 避免层级过深的URI 不支持路由正则表达式
2.复杂查询
查询可以捎带以下参数:

·示例备注
过滤条件?type=1&age=16允许一定的uri冗余,如/zoos/1与/zoos?id=1
排序?sort=age,desc
投影?whitelist=id,name,email
分页?limit=10&offset=3

3.query string参数与body参数
query:查询字符串,参数不存在的时候默认值返回空串。 body:报文体,常见有四种格式,application/jsonapplication/x-www-form-urlencoded, application/xmlmultipart/form-data
4.请求格式
对于 POST 和 PUT 请求,请求的主体必须是 JSON 格式,而且 HTTP header 的 Content-Type 需要设置为 application/json。