OpenAPI 3 schema中应如何正确声明data URL类型的参数?
OpenAPI 3声明data URL类型参数的相关说明
首先可以明确,你的写法是符合规范的:
- OpenAPI 3的Schema规范并未限制
format字段的取值,仅预置了一批通用的标准format值,完全支持用户自定义format来标识特定的字符串格式。 - 不过行业内通用的命名习惯是用
data-url(全小写加短横线分隔)来标识data URL格式,避免原写法里的空格可能导致部分校验工具出现兼容问题。
如果想要进一步提升兼容性和校验严格度,可以额外补充pattern字段写正则匹配标准的RFC 2397 data URL格式,优化后的示例如下:
MyObject: title: MyObject description: Information about my object type: object required: - myData properties: myData: type: string format: data-url description: 符合RFC 2397规范的Data URL资源 pattern: '^data:([a-zA-Z0-9]+/[a-zA-Z0-9-+.]+)?(;[a-zA-Z0-9-]+=[a-zA-Z0-9-]+)*(;base64)?,.*$'
额外说明:
- 不识别
data-url这个自定义format的工具会默认将字段作为普通字符串处理,不会触发兼容报错 - 新增的
pattern规则所有标准OpenAPI校验工具都可识别,能确保字段格式符合要求
内容的提问来源于stack exchange,提问作者Göran Kämpe
相关产品推荐
相关产品推荐

