后端接口规范问题,只提供一个接口如何?

2024-01-11 15:17:15 +08:00
 lbunderway

一个后端服务只向外提供一个借口,全用 post ,通过定义不同的业务 code 进行处理,我之前有个小系统就这样搞过,并且我还觉得前端反而会不会简单些,只用一个接口,而有的项目用 rest 风格,有的反而有点不伦不类,大佬些觉得如何呢

10337 次点击
所在节点    程序员
79 条回复
lovelylain
2024-01-11 16:43:11 +08:00
看你们基础设施,如果监控、频限等都是接口维度,只用一个接口导致都上报到这个接口的话,建议拆分多个接口,如果本身支持根据 code 处理或者小改就能实现,只用一个接口也没啥问题。
huihuiHK
2024-01-11 16:46:14 +08:00
简版 Gateway
woodfizky
2024-01-11 16:49:27 +08:00
请求 url 一样的坏处:
排障的时候如果看不到请求内容,无法通过 url 本身判断每个请求在干嘛,因为都是一样的。
(除非你都是 query_param 或者 path_param 传参,但是这样我觉得太蠢了)

同理,所有基于 url 去做的东西你们都做不了了,权限控制,访问统计,等等。

当然如果你的系统不会遇到上面的需求或者问题,那好像没啥毛病。
nhhjhwiner
2024-01-11 16:51:43 +08:00
alipay 的 api 看上去就是一个接口,通过不同方法名进行路由的
Blank10030
2024-01-11 16:56:34 +08:00
功能少的话可以,功能多起来后还是按服务拆分接口比较符合大众要求。
watzds
2024-01-11 16:57:04 +08:00
@janus77 #16 那肯定要写成按 code 注册到一个 map 里,不同 code 调用不同执行器
vibbow
2024-01-11 17:02:28 +08:00
你是否在找:SOAP
Vegetable
2024-01-11 17:12:26 +08:00
你将基础设施的功能用自己的代码实现了一遍,引入了更多风险,但是好处几乎没有。
wxq844688550
2024-01-11 17:17:52 +08:00
go522000
2024-01-11 17:38:42 +08:00
这样的话,后期要加 API 网关比较麻烦。
lbunderway
2024-01-11 18:10:08 +08:00
@batchfy 每个 code 肯定是要些注释的
lc5900
2024-01-11 18:26:50 +08:00
我们有个项目和华子对接就是这样,接口他们定的
dyllen
2024-01-11 19:21:06 +08:00
支付宝的接口不就这样吗?就一个 gateway 的地址,所有接口都是这个地址。
bsg1992
2024-01-11 19:23:15 +08:00
就是 JSON-RPC 其实倒是也可以,这样做的坏处就是,一些成熟的中间件,没法使用
siweipancc
2024-01-11 20:14:23 +08:00
spring mvc 实现原理就是这个,只有一个 web filter ,那设计就很简单了,重写 condition 解析策略就行。
回到题干,假设你不是 java 开发,你确定要这么写代码,库支持改造吗?不是不能用,是维护的问题
SHF
2024-01-11 20:31:34 +08:00
这就是 http rpc
coinbase
2024-01-11 20:57:13 +08:00
nginx 不好缓存 post ,android 客户端或者 iOS 客户端也不好自动缓存
zhao8681286
2024-01-11 21:09:37 +08:00
上面抽一层做网关,就提供一个接口 对应 code 映射到下面服务的接口。
Nazz
2024-01-11 21:12:18 +08:00
没毛病,JSON-RPC
Nazz
2024-01-11 21:13:29 +08:00
我现在做的项目,纯 POST 且不含动态路由

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

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

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

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

© 2021 V2EX