在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中实现多个接口的主要内容,如果未能解决你的问题,请参考以下文章

无法在 GraphQL 中实现联合

在 NestJS + GraphQL 中实现“命名空间类型”解析器

如何在 GraphQl JS 中实现带有破折号的枚举

在 GraphQL 服务器中实现访问控制的好模式是啥?

如何在express中实现resolveType函数/初始化graphQL服务器

swift 在Swift中实现的GraphQL数据结构