作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了这个伟大的要点 - GraphQLInterfaceType
但仍有一些困惑:
ES6 类
吗?
ES6 类
和等量的 GraphQL 类型
。interfaces
功能时如何正确处理resolveType
和isTypeOf
?GraphQL 类型
定义了所有 ES6 类
,但原始数据是在不同的地方使用不同的技术构建的,例如 grpc+protobuf
与这些类定义没有任何关系,那么 isTypeOf: (value) => value instanceof Dog
在这里如何工作?最佳答案
resolveType
和 isTypeOf
的实现非常灵活,原因是:它非常特定于应用程序。这取决于数据库、数据模型、类型的相似程度等等。某些后端可能为其所有模型拥有单独的 ES6 类,特别是在使用 ORM 时,它会在您查询数据库时创建这些类的实例。但 ORM 并不是必需的。并且您不需要实例化任何其他类来确定 GraphQL 类型。
在某些情况下,您可以仅根据对象的属性来确定类型。如果您的应用不是这种情况,您可以采取一些措施来提供提示。这是一个 SQL 示例。
SELECT
id,
body,
author_id,
post_id,
'Comment' AS "$type" -- leave a hint to resolve the type
FROM comments
UNION
SELECT
id,
body,
author_id,
NULL AS post_id,
'Post' AS "$type" -- leave a hint to resolve the type
FROM posts
此查询提供了“类型提示”,即一个附加的计算列,因此实现 resolveType
是一个简单的属性查找。其他 DBMS 可以使用类似的策略。
关于graphql - 在GraphQL中,当大量使用 `resolveType`特征时,如何处理 `isTypeOf`和 `interfaces`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43469685/
我已经阅读了这个伟大的要点 - GraphQLInterfaceType 但仍有一些困惑: 真的有必要为所有 GraphQL 架构类型定义 ES6 类吗? 这里主要关心的是:我们最终会得到大量空的 E
如果提供的类型均不匹配,我将尝试在 resolveType 函数中返回泛型类型。下面的示例显示了这个问题:API 工作得很好,支持 UserType 和 MovieType,直到在数据库中添加了 Bo
我是一名优秀的程序员,十分优秀!