如何在OpenAPI V3规范中不区分大小写处理州代码
关于OpenAPI枚举大小写兼容及未知值处理的问题
我们的模型中有一个State对象,通常以州代码形式传入,在OpenAPI Schema中定义如下:
StateOrProvince: type: string enum: - AL - AK - AZ - AR - AS ...
这给Swift应用带来了麻烦:因为无法完全控制输入数据来源,用户可能输入Az而非AZ,这种大小写差异会导致包含StateOrProvince的大对象解析失败。
目前想到的常规解决方案有两种:
- 将
StateOrProvince定义为普通字符串,在Swift端自行处理解析为州代码 - 让服务器返回数据时统一转为全大写
但为了更深入掌握OpenAPI,我想探索其他方案。目前只见过用正则表达式解决类似问题的案例,但针对这么多枚举值编写正则会非常繁琐且难以维护,还无法直接解析为Enum类型。
在Swift中我们可以定义这样的枚举:
enum State { case AL case AK .... case Unknown(stateCode: String) }
它能把未收录的州或Az这类输入优雅地存入.Unknown(stateCode: "Az")中。
请问OpenAPI是否有类似的概念?能否在API规范中实现枚举值的不区分大小写处理?
内容的提问来源于stack exchange,提问作者CalebK
相关产品推荐
相关产品推荐

