大摇大摆地自定义输入验证 ui

Customizing input validation in swagger ui

我们使用在 Asp.Net 核心之上工作的 Swashbuckle 包从我们的网络服务器公开 swagger-ui。我们遇到了 Guid 输入字段的输入验证问题。

我们粘贴的 GUID 是从系统的其他部分读取的,格式为 deb83f8a3edc4b78a2ece3321f81b58b,请注意缺少的破折号。输入验证拒绝这个,因为它期望格式中有破折号(因此它接受 deb83f8a-3edc-4b78-a2ec-e3321f81b58b)。

我们服务的swagger文档的参数类型为:string,格式为:uuid。它调用一些内部 validationGuid 调用,该调用具有强制破折号的正则表达式。从浏览器控制台看来,它似乎正在寻找一个名为 JsonSchema_string_uuid 的组件,但没有找到它。

所以我的问题是如何扩展 swagger-ui 以覆盖特定参数 type/formats 的验证?

更新: 我了解到 RFC 将 UUID 指定为包含破折号和解决方法。但是,我仍然有兴趣了解如何自定义自定义格式的验证,特别是 uuid?

虽然 OpenAPI 规范和 JSON 模式目前没有定义 format: uuid,但 OpenAPI 存储库中的 RFC 4122 defines UUID as containing dashes, and some comments 建议 format: uuid 应该遵循 RFC 4122。这表示您没有破折号的示例很可能不是 format: uuid.

考虑将 format: uuid 替换为 pattern: '^[A-Fa-f0-9]{32}$'。