Body 传参时,有没有必要将查询参数用一个字段包起来

2024-03-15 11:05:15 +08:00
 unt

例如: POST /api/client

1. Body 参数
{
  pageIndex:1,
  pageSize:10,
  area:123,
  type:1,
  star:1
}
2. Body 参数
{
  pageIndex:1,
  pageSize:10,
  pBody:{
    area:1,
    type:1,
    star:1
  }
}

哪种方式比较好,我知道都可以,只是习惯问题,但是应该是有一些历史遗留原因或者道理的,可能是语言间的开发差异导致,可能是开发人员的习惯导致,可能是由。。。。。。。

请问 V 友们你们更倾向于哪种方式,原因是什么

6719 次点击
所在节点    程序员
40 条回复
unt
2024-03-15 13:06:25 +08:00
@wanniwa #19 不能因为有 pageIndex 和 pageSize 就包,没有就不包吧,不统一了
wanniwa
2024-03-15 13:09:01 +08:00
@unt #21 哦哦,我看错了
wanniwa
2024-03-15 13:21:25 +08:00
推荐第一种,抽一个通用 page 的父类就行,第二种谁写谁恶心,还要写一个组装对象的 class ,pBody 些得写一个 class
wanniwa
2024-03-15 13:22:07 +08:00
@wanniwa #22 pBody 也得写一个 class
wanniwa
2024-03-15 13:23:15 +08:00
@wanniwa pBody 也得写一个 class
9fan
2024-03-15 14:14:57 +08:00
组合无疑比继承更加优雅,相对于 java
nekomiao
2024-03-15 14:19:28 +08:00
只有我是吧 page 参数放 urlPath 里的吗。。
```java
@PostMapping(value = "/getPage/{pageNo}/{pageSize}")
public Result getPage(@RequestBody SelectVO selectVO, @PathVariable Integer pageNo, @PathVariable Integer pageSize)
```
wu00
2024-03-15 14:30:51 +08:00
request 用 1 ,主要是 get 请求参数更优雅

response 用 2 ,结构优雅,更容易做泛型封装
unt
2024-03-15 14:48:51 +08:00
@nekomiao #27 现在大部分路由参数用得很少,主流还是 query 和 body
yrzs
2024-03-15 15:12:44 +08:00
组合优于继承
yooomu
2024-03-15 15:21:48 +08:00
我用 GET 和 query 参数,所以可能偏向于第一种
sunpj
2024-03-15 15:27:55 +08:00
@nekomiao 一般很少这么写吧
HappyAndSmile
2024-03-15 15:32:42 +08:00
第一种
unt
2024-03-15 15:51:00 +08:00
@yooomu #31 query 的话确实第一种更加优雅,但是我们最开始定的规范是一个 get 方法都不用,全部用 post 方法放 json 里,所以才用了第二种。
pannanxu
2024-03-15 17:12:45 +08:00
{"filter":{},"pageable":{"current":1,"pageSize":20}}
unt
2024-03-15 17:31:30 +08:00
@pannanxu #35 有点丑
xavierchow
2024-03-15 20:27:37 +08:00
> 但是我们最开始定的规范是一个 get 方法都不用,全部用 post 方法放 json 里,

不知道为什么一开始定这样的规范,与其自己去定义一套新的,还不如去使用已被详细讨论过并被严格定义的行业规范,比如 https://jsonapi.org/format/#fetching
unt
2024-03-15 21:30:02 +08:00
@xavierchow 因为应用场景没有任何性能压力,并发不会超过 50
AItsuki
2024-03-15 23:02:34 +08:00
第一种吧,本质上是一个 filter ,全部属性平铺就好了。第二种无论是客户端还是服务端都嫌麻烦
changdy
2024-03-16 12:27:46 +08:00
@nekomiao 卧槽 大兄弟 你这是走到哪 都是异教徒啊...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1023889

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX