目前在项目上已经使用 graphql 有 2 年多了,当时开始之前 dva + 实践派 restful,新项目开始的时候对于 graphql 是一脸懵逼,查了一堆资料,也尝试了当时的 graphql 库,最后也放弃治疗,自己手动写 post,强行将 graphql 在项目上使用了。
然后经过不断的偷懒工作,两年多下来,在前端项目上将 graphql 当成 restful 的方式使用,通过自动创建 post 体,只需要传输例如 teacher 表明自动生成 增删改查 之类常规接口,query 类型如果无特殊操作都能自动生成, 非常规 mutation 类型只需要传输 mutationType + 接口参数 。
具体大概方式就是通过 __schema
(生产会静态化)来查询语法文档,然后通过里面的字段关联,自动创建 post 的 body 信息,达到
这背后夹带着结合业务时候进行构建语法字段的时候白名单和黑名单字段操作。
例如我们最终的一个增删改查的 services,这样子就完成了个教师这个表的列表、详情、新增、删除等通用方法。
import Factory from '@/services/_factory';
import ServiceCommon from '@/services/common';
const model = 'teacher';
const Service = Factory({
model,
});
return Service ;
最后感觉就会已经是在前端领域脱离了真正 graphql 的意义了。(当然如果手动传输查询体中间的内容是支持的)
想知道现在正在使用 graphql 的团队,除了 Relay 、apollo 之类的,有什么特殊的使用方式。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.