在graphql中实现多个接口
Posted
技术标签:
【中文标题】在graphql中实现多个接口【英文标题】:Implement multiple interfaces in graphql 【发布时间】:2018-09-06 09:00:40 【问题描述】:我正在使用中继编译器,它不允许我编译具有实现多个接口的类型的模式。我做了一个小测试项目:
package.json
"scripts":
"relay": "relay-compiler --src ./ --schema schema.graphqls"
,
"dependencies":
"react-relay": "1.5.0"
,
"devDependencies":
"relay-compiler": "1.5.0"
schema.graphqls
interface First
a: String
interface Second
b: String
type Something implements First, Second
a: String
b: String
test.js
import graphql from "react-relay";
graphql`fragment Test_item on Something
a
b
`;
如果你用 npm run relay 运行它(在 npm install 之后)你会得到错误:
Error: Error loading schema. Expected the schema to be a .graphql or a .json
file, describing your GraphQL server's API. Error detail:
GraphQLError: Syntax Error: Unexpected Name "Second"
任何想法为什么会发生这种情况?
【问题讨论】:
【参考方案1】:对于多个接口,您应该使用与号而不是逗号。 见这里:http://facebook.github.io/graphql/draft/#sec-Interfaces
type Something implements First & Second
【讨论】:
以上是关于在graphql中实现多个接口的主要内容,如果未能解决你的问题,请参考以下文章
在 NestJS + GraphQL 中实现“命名空间类型”解析器