Graphql由谁去维护?

29 阅读2分钟

最近想尝试用 GraphQL 写一些接口,于是就有同学提出,GraphQL 不是属于后端的吗,为什么要前端去写?而后端则认为,前端离业务更近,应该前端去写。

我们先来讨论谁离业务更近的问题

前端后端谁离业务更近?

前后端的关系可以大概这么划分

image.png

举两个例子

  1. 列表页面

交互部分:需要展示什么字段

底层逻辑: 需要存储哪些字段

  1. 成员邀请功能

交互部分:通过手机号还是邮箱邀请?需要做哪些格式限制?

底层逻辑:如果是手机号邀请,能否创建相应的数据记录

结论

前端离交互更近,后端离底层逻辑更近。不管是交互还是底层逻辑,都属于业务的一部分。所以并不存在谁离业务更近的问题

主要争议

接口的业务逻辑放在前端还是后端?

推导过程如下

问:哪一类接口存在这种争议?

答:一般是信息查询类的接口

问:查询类接口离交互更近,还是离底层逻辑更近?

答:离交互更近,如果没有用户界面,根本就不需要这类接口

结论

所以我认为,很多接口需求是为前端交互服务的,前端长啥样当然前端更清楚,所以条件允许的话前端自己写这部分接口能减少沟通成本。 离谁更近,由谁去开发效率更高

这样做的好处是

  1. 后端不需要关注“交互”部分。前后端除了都要了解通用业务逻辑以外,各自有自己关注的侧重点。减少团队内没必要的重复阅读文档的时间
  2. “交互”部分更改频繁,一般情况下只需前端就能搞定,无需每次带上前后端
  3. 接口定义上减少前后端的沟通成本