Реализовать несколько интерфейсов в graphql

Я использую релейный компилятор, и он не позволяет мне скомпилировать схему с типом, который реализует несколько интерфейсов. Я сделал небольшой тестовый проект:

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), вы получите ошибку:

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/

type Something implements First & Second
Другие вопросы по тегам