graphql - 何时使用显式关系 - 模式设计
问题描述
我正在思考关于显式与隐式关系的架构设计何时...
例如:在具有 2 个自定义类型 author 和 post 的虚构模式中,每个类型都有多个属性,post 类型可以通过以下两种方式之一引用作者:
- 显式:具有 Autor 类型属性
- 隐含的:具有间接指向作者的标量值
在设计shema时。在这种决策中,我的指南针应该是什么?提前致谢
解决方案
当您可以公开一个返回整个资源的字段时,只返回相关资源的 ID 对客户端绝对没有任何价值。仅公开 ID 将意味着客户端必须向您的服务发出后续请求以获取相关资源,而不是能够在一个请求中获取整个数据图。
在其他服务的上下文中,例如 REST API,只返回相关资源的 ID 或 URL 可能是有意义的。这是因为在这些情况下,有效负载的大小是固定的,因此默认情况下返回每个相关资源可能会快速且不必要地使响应膨胀。然而,在 GraphQL 中,请求负载是客户端驱动的,所以这不是问题——客户端总是会得到它所要求的。如果客户端只需要作者的 ID,他们仍然可以通过该字段仅获取该字段——同时允许在其他请求中或由其他客户端获取author
更完整的对象。Author
推荐阅读
- c# - .NET 核心中的 gRPC 和分布式事务
- html - 两个 div 填充同一行
- javascript - 如何单击自定义元素(webcomponent)内的元素?
- android - 如何将 URLS 或字符串转换为 base64?
- php - 更新表单时检查单选按钮值是否未使用 PHP 更改
- docker - 在 Docker 容器中运行我的应用程序
- macos-catalina - 如何为 Mac OS catalina 编写驱动程序包扩展
- c++ - android和windows应用程序之间的TCP Socket连接
- arrays - BASH 数组的单个下标中是否可以有多个值?
- lua - 如何在另一个表中的另一个表中插入另一个表?