1.基本的增删改查接口
project:项目名称
object:对象,需要操作的对象,和表关联
{id}:表的主键
创建 project/object POST
更新 project/object PUT
删除 project/object/{id} DELETE
查询指定 project/object/one/{id} GET
查询所有 project/object/all GET
查询筛选 project/object/queries POST
注意设计的URL不能冲突,
比如多个path variable不能在同一个层级。
开发对应代码方法的命名规则:
create*
update*
delete*
query*
queryBatch*
同义词:
create -- add, insert, save
query -- get, select
queryBatch -- getAll
建议不要混用同义词,
使用一套统一的命名方法。
2.url为多个单词,使用驼峰结构
proejct/myDesignObject POST
3.返回单条结果和多条结果的区别
单条结果直接是一个对象,
多条结果是多个对象的List,
表述如下:
objects List<Object>
Object:对象具体字段
result1 String
result2 String
多条结果返回的json中不需要体现出objects,
只需要直接包含对象的数组即可。
说明:比如响应参数的objects是一个List类型,
在返回的JSON报文中直接是一个数组,
不需要业务另外包装一个有nodes节点的对象返回。
4.返回的多个结果不是对象,是String等基本类型
表述如下:
results List<result>
result具体的字段描述:
result String
特点是result不能大写,
如果是Result则是一个对象,
另外只能是一个具体的字段。
5.请求参数二选一
请求参数可能是PathVariable(RequestParam)
或者Request Body的一种,
如果URL中带了参数,就不要使用Request Body携带参数,
除非有特别的另外说明,
这两种方式建议是二选一,
不要混合使用。
6.表的创建时间和更新时间操作时机
创建对象的时候,创建时间填写为系统时间,
更新对象的时候,更新时间填写为系统时间。
一般情况下在系统中填写时间参数,
不要额外让调用方传入时间参数。
7.URL中带有冒号:等特殊符号
使用@RequestParam代替@PathVariable
即使用project/object?id={id}这种URL
而不要使用project/object/{id}
8.只有一个参数优先使用URL携带
请求参数如果只有一个,
优先在URL中携带这个参数,
而不是在请求体中携带,
因为一个参数的请求体会被错误的使用,
即使一个请求体也要封装对应的请求类。
比如请求参数"id":"001",
对应URL:
project/{id}
String id
对应RequestBody:
{"id":"001"}
对应封装的返回类:
class IdReq{
prviate String id;
}
9.分页参数
确定分页参数第一页从0还是从1开始,
建议pageNum=1代表第1页,
即分页参数从1开始,
Mybatis的PageHelper分页插件,
对应参数pageNum=0有不同的处理方式,
所以可以统一第一页分页从1开始。
分页参数是通过URL传递还是通过Body传递,
由于Get方法中只能通过URL传递参数,
可以统一为分页参数都在URL中传递,
这样方便编写接口文档描述分页规则,
但是注意上面5.请求参数二选一的规则,
此时该条规则优先级更高。
10.HTTP响应参数
说明:响应参数使用的是HTTP协议的返回,不需要业务单独处理。
网友评论