色空大师 2023-09-24 01:55 采纳率: 40.9%
浏览 1
已结题

写接口时把变量写到路径和写成请求参数的区别是啥

写接口时把变量写到路径和写成请求参数的区别是啥

写代码时有个疑惑,变量写到路径和作为请求参数有啥区别吗?

@GetMapping("group/{cid}")
    public ResponseEntity<List<SpecGroup>> querySpecGroups(@PathVariable("cid") Long cid){
    }

这个的请求是这样的
localhost:8083/spec/group/76
通常是作为参数

@GetMapping("group")
    public ResponseEntity<List<SpecGroup>> querySpecGroups(Long cid){

localhost:8083/spec/group?cid=76
请问,除了url不一样外,有啥区别呢,为啥我看别人的代码有些查询接口id写到路径里,有些写到请求参数中?还是说这只是两种写法,效果完全一样?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-24 04:50
    关注

    【以下回答由 GPT 生成】

    这两种写法在结果上并没有什么区别,实现的效果是一样的。不过它们的使用场景有所不同。

    1. 把变量写到路径中:
    2. 适用于对于一个资源进行具体查询或操作,需要在URL中动态指定资源的标识。例如,查询一个特定商品的信息,可以使用 /api/products/{productId} 的形式,其中{productId}表示具体的商品ID。

    3. 把变量作为请求参数:

    4. 适用于对资源进行筛选和查询时需要传递多个参数,且参数可以为空的情况。例如,筛选商品列表时可以传递多个条件,如价格范围、品牌等,可以使用 /api/products?priceMin=10&priceMax=100&brand=apple 的形式,其中priceMinpriceMaxbrand为请求参数。

    选择哪种方式取决于具体的需求和设计风格,但通常来说:

    • 如果资源标识不可缺少或不可变动,例如订单号、用户ID等,可以将其放到路径中。
    • 如果是可选的或可变动的查询条件,例如筛选、排序等,可以将其作为请求参数。

    所以,你在编写接口时可以根据具体的场景选择适合的方式来传递参数。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 10月4日
  • 已采纳回答 9月27日
  • 创建了问题 9月24日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部