Схема GraphQL - можно ли установить ограничения на поле настраиваемого типа

Вот упрощенный фрагмент схемы GraphQL, с которой я работаю. Есть - перечисление, тип Contributor и тип Review.

enum CONTRIBUTOR_TYPE {
  AUTHOR
  EDITOR
}

type Contributor {
  name: String
  role: CONTRIBUTOR_TYPE
}

type Article {
  text: String
  authors: [Contributor]
}

Я хочу описать, что поле "авторы" - это не просто массив типа Contributor, а Contributor с определенной должностью. В псевдокоде это выглядело бы так:

 authors: [Contributor{type: CONTRIBUTOR_TYPE.AUTHOR}]!

Есть ли способ описать это ограничение в схеме GraphQL?

1 ответ

Вы должны иметь возможность использовать директивы схемы для описания / применения ограничения. Для сервера apollo проверьте https://www.apollographql.com/docs/apollo-server/schema/creating-directives/, для graphql-java проверьте https://www.graphql-java.com/documentation/v15/sdl-directives/, для других реализаций сервера проверьте соответствующую документацию.

Другие вопросы по тегам