Restful API 基本规范
- GET
user/1获取id 为1的user资源 - POST
user/1创建id 为1的user资源 - PUT
user/1修改id 为1的user资源 - DELETE
user/1删除id 为1的user资源
项目中用到的带?的URL
GET user/1?name=zhangsan
区别于
GET user/1
?name=zhangsan表示查询名字为zhangsan的user资源,即不是根据id查找的时候约定?后的参数为查询条件。
与搜索业务相关的带?的URL
前端需求:
- 前端提取参数方便,使用地址栏显性展示搜索数据,所以请求都为
GET - 面包屑导航
- URL地址拼装查询条件
查询URL?name=xxx&category=xxx
后端需求
- Controller接收参数封装成map
因为面包屑的导航,?后的参数是不确定的,一定要使用@requestParam(required = false)把参数序列化成map
/**
* 接收页面传递的参数 执行查询 返回结果 map
* 兼容thymeleaf, 需要把请求方式给修改成GET
*
* @param searchMap 参数条件封装的对象
*/
@GetMapping
@ApiOperation(value = "使用ES搜索商品服务")
public Map search(@RequestParam(required = false) Map searchMap){
return skuService.search(searchMap);
}
小结
Restful API 存在?,可以很好的用去区分主键查询和关键字查询。
兼容前端的面包屑查询策略,GET请求下 + ?暴露查询关键字是一个有效的方案。
其他带?的 Restful API 需要根据项目的规划自行统一。

本文详细阐述了Restful API的基本规范,包括GET、POST、PUT、DELETE等HTTP方法的应用场景,以及如何通过URL参数区分主键查询和关键字查询。同时,文章探讨了前端面包屑导航与后端参数接收的兼容性解决方案。
942

被折叠的 条评论
为什么被折叠?



