Мутации AppSync и Graphql Enum - PullRequest
0 голосов
/ 11 июня 2018

У меня есть следующая схема в AppSync для Gralphql

input CreateTeamInput {
    name: String!
    sport: Sports!
    createdAt: String
}

enum Sports {
    baseball
    basketball
    cross_country
}
type Mutation{
    createTeam(input: CreateTeamInput!): Team
}

Однако, когда я пытаюсь выполнить запрос, используя библиотеку aws-ampify через

export const CreateTeam = `mutation CreateTeam($name: String!, $sport: String!){
  createTeam(input:{name:$name, sport:$sport}) {
    id,
    name,
    sport
  }
}
`;

....

API.graphql(graphqlOperation(CreateTeam, this.state))

, я получаю следующую ошибку:Validation error of type VariableTypeMismatch: Variable type doesn't match.

Как я могу обновить свой код для работы с этим типом перечисления?

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

CreateTeamInput.sport тип поля - enum, следовательно, ваша переменная $sport должна быть enum.

Попробуйте изменить запрос на:

export const CreateTeam = `mutation CreateTeam($name: String!, $sport: Sports!){
  createTeam(input:{name:$name, sport:$sport}) {
    id,
    name,
    sport
  }
};

Примечание: Как правило, предпочитайте использовать заглавные буквы для значений перечисления, чтобы их было легко отличить от строк.

enum SPORTS {
    BASEBALL
    BASKETBALL
    CROSS_COUNTRY
}
0 голосов
/ 12 июня 2018

$ спорт должен быть спортивным, а не строкой

...