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

363 天前
 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 友们你们更倾向于哪种方式,原因是什么

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

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

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

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

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

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

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

© 2021 V2EX