现在做开发的时候遇到一个问题,需要将以前三个接口完成的功能整合到一个功能里来,对于 POST 类的请求可以整合到 body 里,里面是由多个 JSON 组成的一个大 JSON 数据,这样做主要是参考 Google 的做法。 对于 GET 类的请求应该如何设计呢,GET 请求一般不用 body ,怎么用一个比较好的方式把三个接口的参数整合到一起?
1
rekulas 2022-01-08 23:51:36 +08:00
直接拼接倒 url 或者 (如果有冲突)装入 json 整个作为一个参数?
反正作为 get 来说参数应该不多,如果参数太多还用 get ,感觉是有问题的 |
2
rekulas 2022-01-08 23:54:36 +08:00
现在还有个 GraphQL 的新概念,需要后端配合修改据说可以多个 api 整合但是会增加不少工作量没用过
|
3
yongchiu OP @rekulas 这是一个查询类的请求,查询一些数据的信息,因此考虑使用 GET 方法比较合适;装入 json 是怎么做呢? GET 请求能使用 JSON 吗?
|
4
yongchiu OP @rekulas 主要是调用他人的 RPC 接口,RPC 只提供了两个接口,根据不同的参数返回不同的结果;因此 API 打算也按照 RPC 的接口进行设计,另一方面参考 Google 的 API 也是把多个接口的功能整合到了一个接口里面来
|
5
rekulas 2022-01-09 00:10:55 +08:00
api?{"req1param":{},"re2param":{}}
或考虑伪静态之类 api/{"req1param":{},"re2param":{}} 参数也可以编码一下 |
6
bombless 2022-01-09 04:56:16 +08:00 via Android
get 也是可以放 body 的,不过你要预先测试一下你的服务端是否支持。我后端用的是 springboot 那套是可以的
|
7
Chad0000 2022-01-09 05:34:21 +08:00 via iPhone
有时候没必要完全按 rest 建议来,我的所有 api 都是 post ,就不会有这个问题。
|
8
kop1989 2022-01-09 07:43:50 +08:00 via iPhone
可以拼在 URL 中,然后这个请求只有一个参数,其内容是 urlencode 过的、真正参数集合的序列化结果。
当然,要考虑超长,不过查询应该问题不大 |
9
rekulas 2022-01-09 09:25:44 +08:00
我也建议全部 post 来,rest 本身就不是一种足够完备的风格,如果全部机械式按 rest 设计只会带来更多麻烦不便
|
10
iikebug 2022-01-09 10:30:35 +08:00
我自己写的接口都是 post 的,管你什么方法,前端舒服的一批
|
14
lisongeee 2022-01-09 20:16:31 +08:00
有时候挺纠结 get 还是 post ,不能要求每个人不是傻逼,还不如直接用 json-rpc ,统一的规范比什么都好
|
15
zqli92 2022-01-09 21:52:07 +08:00
一个建议:只用 get/post 方法,body 的数据结构可以看这个: https://hackertalk.net/post/202030390784430080
|