lns*_*shi 7 graphql graphql-js
我已经阅读了这个伟大的要点 - GraphQLInterfaceType
但仍有一些困惑:
ES6 classes
为所有GraphQL架构类型定义?
ES6 classes
和等量的GraphQL types
.resolveType
和isTypeOf
适当的时候使用interfaces
的功能很多吗?ES6 classes
所有内容GraphQL types
,但原始数据是在不同的地方构建的,具有不同的技术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
Run Code Online (Sandbox Code Playgroud)
该查询提供了一个“类型提示”,一个附加的计算列,因此实现resolveType
是一个简单的属性查找。其他 DBMS 可以使用类似的策略。
归档时间: |
|
查看次数: |
1539 次 |
最近记录: |