REST 接口让前端在请求中指定需要返回的字段是否合理?

2020-11-12 16:52:48 +08:00
 qce7

基于以上考虑,相同模型通过前端指定返回不同的字段是比较合理的选择

前端会很抗拒这种设计吗

3014 次点击
所在节点    程序员
21 条回复
oliver2bao
2020-11-17 08:59:03 +08:00
先回答题主的三个问题

- 接口可分为公共接口,和页面独有的接口。比如授权,用户信息这些就是公共接口
- 用一个接口通过修改参数的方式返回所有数据显然是不合理的,这样需要在一个 controller 里面大量的 router 应该做的事,既然这样为什么让 router 做 router 的事,为什么还要手动实现一个 router 的判断呢?
- 同一个接口也可以返回类似的数据的,可以通过前端传递不同的参数来决定是否返回某些数据。另外建议可以系统了解下 restful api 的设计,阮一峰的博客就有。

其实我说的这些就是二楼 @wunonglin 说的,以 egg.js 框架的逻辑来说。

一个请求进来,先经过 router 筛选,选择正确的 controller 入口,进入之前,先经过 middleware 的处理。一般来说 router 和 controller 是一对一的关系,当然也能写成多个 router 对于一个 controller,但是那样没任何一样。

在 controller 中调用多个 service 来处理,有些 service 会调用 model,有些却不用。后端不应该直接把 model 直接暴露给前端调用的,毕竟不是什么数据都可以直接无限制的暴露出去。

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

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

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

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

© 2021 V2EX