You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 16:32:04