Как выразить валидацию ввода в GraphQL

Мне интересно, как выразить проверку типов ввода в схеме GraphQL, например:

input DateFormat {
  format: String!
}
  • Как я могу это выразить format должно быть не более 10 символов, например, для других проверок.
  • Возможно ли это реализовать с использованием GraphQL-core 3 для python?

заранее спасибо

1 ответ

Думаю, есть две возможности:

  1. Создайте собственный скаляр. Скаляры могут выполнять проверку ввода в функциях parseLiteral и parseValue. Поскольку GraphQL-core 3 кажется портом библиотеки JS, это должно быть возможно сделать с помощью библиотеки. Но создание нового Scalar - это довольно большая работа и не обязательно дает разработчикам больше возможностей. Скаляр должен быть задокументирован так же, как и простое поле. На практике это означает, что для определенных форматов редко используется новый скалярный тип. Вот несколько примеров на JavaScript.

  2. Просто задокументируйте подтверждение в описании поля. Если строки создаются только разработчиками, можно выдать ошибку в преобразователе. Если проверка касается конечного пользователя, я бы рекомендовал полезную нагрузку ответа на мутацию, которая содержит ошибки в качестве результатов. Также эту статью

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