PC 端和手机端页面字段和数据格式一致的情况下,能否共用一套接口?

306 天前
 Dosenf
最近遇到这个问题,原来的后端写了 pc 端一套接口手机端一套接口,每次调整都要做两次工作
1924 次点击
所在节点    程序员
20 条回复
Zorro825
306 天前
可以呀
suweia
306 天前
起初为啥要写两套
Dosenf
306 天前
@suweia 一开始两个端都设计好了但是没有开发移动端,结果后端硬是写了两套
Hancock
306 天前
我们这边 PC/Mobile/APP 展示内容如果一致都是通用的接口,方便维护,只有个别接口使用 version+platform 进行控制返回
wu67
306 天前
一般通用, 多客户端公用, 有特别需求导致数据结构需求不一样的再重新写, 或者忙不过来直接给够数据让客户端自己组装都行
Dosenf
306 天前
@Hancock
@wu67
現在的前端什麼問題都丟給後端,自己都不組裝,搞得後端整天給前端打工
jones2000
306 天前
分 2 套是对的, 如果是一套,改了接口, 所有平台都要测试, 如果有测试部门就无所谓了, 出现 bug 的概率更高
yueban5521
306 天前
@jones2000 理解精辟
HanSonJ
306 天前
```
func show() {
return xxx
}

func pcShow() {
return show()
}

func mobileShow() {
return show()
}
```
ColdBird
306 天前
可通用就通用,通用不了再拆,维护多份成本太高
renmu
306 天前
@jones2000 只要接口测试通过就行了,bug 和哪个平台调用有什么关系?倒不如说一套接口容易维护多了
heftyMan
306 天前
完全可以,大不了返回冗余多一点。实在不行传参判断
Ashore
306 天前
@HanSonJ 真实
ksc010
306 天前
@jones2000 接口参数格式都修改了 不应该增加版本号吗?
user9121
306 天前
可以同一个实现.用来两个不同的地址.
这样如果后边要拆,前端不用动.
wudaye
306 天前
代码可以用同一套,http 接口定义要分开
crazyweeds
306 天前
建议不要一刀切,代码层面抽取公共模块,然后启动两个服务引用公共模块即可,如果后续调整,心智成本比较低,互不影响。也解决了初期问题。
jones2000
306 天前
@ksc010 有几个后台是增加版本号的。理想和现实是有差距的。最后就变成一堆屎,PC 端,移动端各种判断一大堆,根本就没人改的动。
blackhorse
305 天前
业务复杂的话可以考虑加个中间层(BFF)
reter
305 天前
近期在看 HTMX 。 觉得里面的思想很有意思。

你的接口是专门为页面服务的吗?如果是,那就是页面特定的接口,接口的设计应该跟着页面走,失去了通用性,JSON RPC 是最合适的

如果你的接口是通用的,不需要服务特定的页面。那就用可以用 REST 风格去设计,不用考虑是谁消费接口,最大的满足通用性

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

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

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

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

© 2021 V2EX