首页 > 解决方案 > 如何在 GraphQL 中表达输入验证

问题描述

我想知道如何在 GraphQL Schema 中表达输入类型验证,例如:

input DateFormat {
  format: String!
}

提前致谢

标签: pythonpython-3.xgraphqlgraphql-python

解决方案


我认为有两种可能:

  1. 创建自定义标量。标量可以在parseLiteral 和 parseValue函数中进行输入验证。由于 GraphQL-core 3 似乎是 JS 库的一个端口,所以应该可以使用该库来实现。但是创建一个新的 Scalar 是一项相当多的工作,并不一定能提供更好的开发人员体验。标量必须以与必须记录的简单字段相同的方式记录。实际上,这意味着很少有新的标量类型用于特定格式。以下是 JavaScript 中的一些示例。

  2. 只需在字段描述中记录验证。如果字符串仅由开发人员构造,则在解析器中抛出错误可能是可以的。如果验证涉及最终用户,我会鼓励突变响应有效负载,其中包含错误作为结果。另见这篇文章


推荐阅读