Как выразить валидацию ввода в GraphQL
Мне интересно, как выразить проверку типов ввода в схеме GraphQL, например:
input DateFormat {
format: String!
}
- Как я могу это выразить
format
должно быть не более 10 символов, например, для других проверок. - Возможно ли это реализовать с использованием GraphQL-core 3 для python?
заранее спасибо
1 ответ
Думаю, есть две возможности:
Создайте собственный скаляр. Скаляры могут выполнять проверку ввода в функциях parseLiteral и parseValue. Поскольку GraphQL-core 3 кажется портом библиотеки JS, это должно быть возможно сделать с помощью библиотеки. Но создание нового Scalar - это довольно большая работа и не обязательно дает разработчикам больше возможностей. Скаляр должен быть задокументирован так же, как и простое поле. На практике это означает, что для определенных форматов редко используется новый скалярный тип. Вот несколько примеров на JavaScript.
Просто задокументируйте подтверждение в описании поля. Если строки создаются только разработчиками, можно выдать ошибку в преобразователе. Если проверка касается конечного пользователя, я бы рекомендовал полезную нагрузку ответа на мутацию, которая содержит ошибки в качестве результатов. Также эту статью