Как определить перечисления для значений ключей в GraphQL

Как мне определить ключи перечислений в схеме GraphQL? Ответ, который я ожидаю, выглядит следующим образом

 businessByState: { 
   MO: ["VALUE1", "VALUE2"],
   CA: ["VALUE1", "VALUE3", "VALUE4]
 }

Я знаю, что могу определить перечисление для значений состояний, но все еще задаюсь вопросом, как я могу определить перечисление, чтобы значения ключей были только двухбуквенными аббревиатурами состояний?


person tsinat    schedule 03.06.2019    source источник


Ответы (1)


В GraphQL каждое поле типа Object должно быть определено явно. Например:

type BusinessByState {
  AL: [String!]!
  AK: [String!]!
  AZ: [String!]!
  # and so on...
}

Не существует синтаксиса для определения нескольких полей с одним и тем же типом на основе некоторого ввода, например существующего перечисления.

Если ваш typeDefs - это просто строка, вы можете использовать строковые шаблоны, чтобы сэкономить время на вводе текста, предполагая, что у вас есть какой-то массив сокращений состояний:

const states = ['AL', 'AK', 'AZ', /** and so on **/]
const typeDefs = `
  enum STATES {
    ${states.join('\n')}
  }

  type BusinessByState {
    ${states.map(state => `${state}: [String!]!`).join('\n')}
  }
`
person Daniel Rearden    schedule 03.06.2019