python - 如何在 GraphQL 中表达输入验证
问题描述
我想知道如何在 GraphQL Schema 中表达输入类型验证,例如:
input DateFormat {
format: String!
}
- 我如何表达
format
最多 10 个字符,例如其他验证。 - 这可以使用GraphQL-core 3 for python 来实现吗?
提前致谢
解决方案
我认为有两种可能:
创建自定义标量。标量可以在parseLiteral 和 parseValue函数中进行输入验证。由于 GraphQL-core 3 似乎是 JS 库的一个端口,所以应该可以使用该库来实现。但是创建一个新的 Scalar 是一项相当多的工作,并不一定能提供更好的开发人员体验。标量必须以与必须记录的简单字段相同的方式记录。实际上,这意味着很少有新的标量类型用于特定格式。以下是 JavaScript 中的一些示例。
只需在字段描述中记录验证。如果字符串仅由开发人员构造,则在解析器中抛出错误可能是可以的。如果验证涉及最终用户,我会鼓励突变响应有效负载,其中包含错误作为结果。另见这篇文章
推荐阅读
- sensenet - 如何使用 SenseNet dotnet 客户端在文件上传后更新自定义字段
- android - 当我的 Android 应用程序处于前台时,我想隐藏其他应用程序的所有通知。这可能吗?如何?
- java - 按自定义顺序对 Arraylist 进行排序
- javascript - 如何通过javascript从跨度中获取价值?
- amazon-s3 - 在 ec2 机器上安装 s3 存储桶作为网络驱动器
- php - 如何覆盖 Laravel 5.6 的默认登录机制?
- java - 如何在 JOOQ 中编写多字段“in”谓词?
- android - 如何在 Fragments 中使用 onBackPressed 方法
- android - 使 TextView 与父布局一样大
- opencl - 如果我使用 clCreateBuffer 分配大量内存,为什么 OpenCL 不打扰?