【项目】Restful API 存在问号的情况解读,搜索业务相关

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 需要根据项目的规划自行统一。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值