GraphQL 最佳实践
GraphQL 规范在处理 API 面临的一些重要问题(如网络处理、授权和分页)上刻意保持了沉默。这并不意味着在使用 GraphQL 时没有针对这些问题的解决方案,只是因为它们不在对 GraphQL 是什么 的描述范围内,而是属于通用实践。
本节中的文章不应被视为金科玉律,在某些情况下,为了采用其他方法,完全可以忽略它们。其中一些文章介绍了 Facebook 在设计和部署 GraphQL 服务过程中形成的理念,而另一些则是针对解决常见问题(如通过 HTTP 提供服务和执行授权)的更具战术性的建议。
- 课程 1用图思考
将你的业务领域建模为一张图
- 课程 2通过 HTTP 提供服务
在 HTTP 服务器上处理 GraphQL 请求
- 课程 3授权
将授权逻辑委派给业务逻辑层
- 课程 4分页
允许客户端通过一致的字段分页模型遍历对象列表
- 课程 5Schema 设计
设计并随时间演进一个无版本的类型系统
- 课程 6全局对象标识
一致的对象访问可实现简单的缓存和对象查找
- 课程 7缓存
提供对象标识符,以便客户端构建丰富的缓存
- 课程 8性能
优化 GraphQL 响应的执行和交付
- 课程 9安全
保护 GraphQL API 免受恶意操作的影响
- 课程 10常见错误
了解常见的 `graphql-http` 错误及其调试方法。
以图的方式思考
了解如何将思维模式从 RESTful 端点转变为基于图的思维,使你的 Schema 与业务逻辑和遗留系统保持一致。