GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑
一、完整原则
确保图被明确定义、稳定且一致
你的公司应当只有一个统一的图,而不是多个团队分别创建的多个图。
虽然只有一个图,但该图应该由多个团队联合实现。
注册和追踪图时应当有一个单一的事实来源。
二、敏捷原则
快速推出图并适应不断变化的需求
Schema 应当作为抽象层以隐藏服务实现细节并为消费者提供灵活性。
Schema 应当根据实际需求增量构建,并随着时间的推移平滑演进。
性能管理应当是一个连续的、数据驱动的过程,可以平滑地适应不断变化的查询负载和服务实现。
开发人员应当在整个开发过程中对图充分了解
三、操作原则
安全地将图大规模部署到生产中
基于每个客户端授予对图的访问权限,并管理客户端可以访问的内容和方式。
捕获所有图操作的结构化日志,并以之为主要工具了解图的使用情况。
采用分层架构将数据图功能分解为单独的层,而不是融入到每个服务中
参考:
https://www.graphql-java.com/documentation
https://www.graphql-java.com/tutorials/getting-started-with-spring-boot/