Схема 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/, для других реализаций сервера проверьте соответствующую документацию.