确实解放了后端接口的开发量,前端需要什么,后端扩展一下 GraphQL 的定义就行。
但是感觉很多都下放给前端了,可能会导致优化工作不好优化,权限不好控制,有点裸奔的感觉。
大家平时有在用吗?
1
XCFOX 43 天前
GraphQL 很好用,对比 RESTful API 简直完胜。但是很多人并不理解 GraphQL ,甚至把 GraphQL 和 SQL 混为一谈。
GraphQL 在团队开发中解决了 3 个主要问题: 1. 服务端到客户端的强类型:GraphQL 本身是一门语言,而且是强类型语言。使用 GraphQL 客户端能够通过服务端提供的 schema 生成全面的 API 类型,极大减轻了前端的负担; 2. 文档与沟通:每个 GraphQL 服务都会有一个 schema 文件,这个文件就描述了该服务内的所有接口,要了解该服务可以直接看 schema 而不是代码; 3. 接口聚合:GraphQL 允许客户端定义要获取的字段,前端想拿什么接拿什么,避免了前后端扯皮( https://www.v2ex.com/t/1036619 )。大型项目里常常需要 BFF 中间层也是为了接口聚合,很多 BFF 层甚至都是拿 GraphQL 搞的。 看楼主的发言,我估计后端是直接用 PostGraphile, hasura 这样的框架直接把数据库表以 GraphQL 的形式暴露给前端。不得不说这是效率极高的做法,但是很难控制权限访问,只适合快速开发阶段使用。常规开发时我还是建议使用 nest.js 这样的框架老老实实做功能。 顺带安利我们团队自研的 GraphQL 框架 GQLoom: https://github.com/modevol-com/gqloom GQLoom 是实现优先( Implementation-First )的 GraphQL 框架,适用于 JavaScript/TypeScript 。GQLoom 最大的亮点是允许使用 Zod 、Valibot 这样的 Schema 库构建 GraphQL ,代码简洁且有完善的类型安全,马上会跟进对 Prisma 、Drizzle ORM 的集成。 |
2
foolishcrab 43 天前 via iPhone
国内在第一阶段,不知道有啥用
国外在第三阶段,都用过了然后回头喷 仅个人观察外网主流技术社区讨论 graphql 现在基本都是负面的 |
3
billzhuang 42 天前 via iPhone
很多年前就开始用吧
|
4
lizy0329 42 天前
国外的用人也不多
|