小白问一个关于后端对应多个端放接口的问题

2018-01-04 15:31:55 +08:00
 feifan00x

在一个后台应用对应多个端 比如 App 端和网页端 需要根据请求端不同而做出不同的响应的时候 大家是怎么写的?

举个栗子:

两个端 比如果登录吧 网页端用的是 session App 端是用的本地储存的用户凭证 他俩登录可以一个接口 但是返回数据有所不同

如果把 api 分开写对应不同的 service 这样重复的东西会不会太多啊

小白不太懂 还请指点

2181 次点击
所在节点    Java
7 条回复
b821025551b
2018-01-04 15:39:29 +08:00
方法 1:网页不用 session 机制,和 app 一样存储 token,走一样的接口;
方法 2:后端接口 MVC,controller 层做两种就行了,一种针对网页,一种针对 APP,逻辑都是共用的。
feifan00x
2018-01-04 15:45:04 +08:00
@b821025551b 如果按照第二种方法来 对于不同端数据的返回不同 是要在 service 层做判断吗?
b821025551b
2018-01-04 15:59:40 +08:00
不知道你所说的,两端数据有差别,是有多大的差别。按照我的理解,既然都是同一个接口,逻辑都是一样的,可能 APP 那边比网页那边多一个字段,如果这种的话没必要在每个 service 的逻辑里做,封装个函数做格式化,然后在 controller 里调用就行了。
WuwuGin
2018-01-04 16:08:25 +08:00
关键词 RESTFUL API
feifan00x
2018-01-04 16:19:58 +08:00
谢谢各位的回答,我总结一下去试试。
AlisaDestiny
2018-01-04 18:06:51 +08:00
@b821025551b 可以在 controller 直接判断 request.header 里的 user-agent。或者在接口里显式的加入客户端类型参数:
/api/data?client=web | /api/data?client=phone
b821025551b
2018-01-04 18:10:32 +08:00
@AlisaDestiny #6 感觉你说的和 lz 想问的不是一件事。。。

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

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

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

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

© 2021 V2EX