openApi schema 中不区分大小写的字符串参数

2024-06-19

我有一个开放的 API 规范,其参数如下:

- name: platform
  in: query
  description: "Platform of the application"
  required: true
  schema:
    type: string
    enum:
      - "desktop"
      - "online"

当我从 URL 获取“平台”参数时,它可以是这样的:

platform=online or 
platform=ONLINE or 
platform=Online or 
platform=onLine  or ... any other format

但是当我要使用它时,只有参数全部小写才有效,例如“平台=在线”,显然是为了匹配枚举值。

如何使模式不区分大小写并理解所有类型的传递参数?


枚举区分大小写。要拥有不区分大小写的架构,您可以使用正则表达式pattern反而:

- name: platform
  in: query
  description: 'Platform of the application. Possible values: `desktop` or `online` (case-insensitive)'
  required: true
  schema:
    type: string
    pattern: '^[Dd][Ee][Ss][Kk][Tt][Oo][Pp]|[Oo][Nn][Ll][Ii][Nn][Ee]$'

注意pattern是模式本身,不支持 JavaScript 正则表达式文字语法 (/abc/i),这意味着您不能指定flags https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Advanced_searching_with_flags like i(不区分大小写的搜索)。因此,您需要在模式本身中指定大写和小写字母。


或者,在中指定可能的值description而不是在pattern/enum,并在后端验证参数值。


以下是 JSON Schema 存储库中的相关讨论(OpenAPI 使用 JSON Schema 来定义数据类型):不区分大小写的枚举? https://github.com/orgs/json-schema-org/discussions/148

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openApi schema 中不区分大小写的字符串参数 的相关文章

  • 在这种情况下(C#)替换开关块和枚举的正确方法是什么?

    如果有帮助的话 以下问题是在我正在构建的游戏的背景下提出的 在几个不同的地方我有以下场景 存在一个父类 在本示例中称为 Skill 并且我有许多子类实现父类中的方法 还有另一个父类 我们称之为 Vocation 这些技能需要列在职业的不同子
  • 如何定义带有字符串值的枚举?

    我正在尝试定义一个Enum并添加 CSV 或类似文件中使用的有效常用分隔符 然后我将它绑定到ComboBox作为数据源 因此每当我在枚举定义中添加或删除时 我不需要更改组合框中的任何内容 问题是如何用字符串表示形式定义枚举 例如 publi
  • 一般处理枚举的 Scala 类

    我想创建一个通用类来保存枚举的值 并且还允许访问枚举的可能值 以属性编辑器为例 您需要知道属性的当前值 并且还需要能够知道该属性的其他合法值 并且枚举的类型不应该提前知道 您应该能够使用任何类型的枚举 我的第一个想法是这样的 class E
  • Swagger/openapi 将 @Schema(description) 添加到每个枚举值

    我正在使用 Swagger OpenApi V3 注释创建应用程序的 API 描述 从以下依赖项导入
  • C# 从整数反序列化枚举

    是否可以从 C 中的 int 反序列化枚举 例如如果我有以下课程 class Employee public string Name get set public int EmployeeTypeID get set 我可以轻松地从 XML
  • 强制派生类实现接口

    我今天在这里 就像昨天一样 遇到了另一个奇怪的界面问题 我有一堂课 public class InputDevice
  • 当我只有一个简短的显示名称时如何获取枚举?

    我得到一个短显示名称 我需要使用它来获取枚举值 Display Name Alabama ShortName AL Alabama 1 我刚刚从外部数据库获取 AL 我需要以某种方式读取我的枚举并获得正确的值 感谢大家的帮助 jasel我稍
  • 枚举的各个值可以实现接口吗

    An enum可以实现一个接口 某些值是否可以实现接口 我正在考虑的用例是一个标记接口 如下所示 interface Foo interface Bar enum Widgets FOO implements Foo BAR 1 imple
  • 重写 java.lang.Enum.values() 上的 Javadoc 注释

    我对该方法有一个非常具体的问题java lang Enum http docs oracle com javase 6 docs api java lang Enum html values 我想覆盖它的javadoc 非常准确地 当前的
  • 什么是 Swift 枚举字节表示?

    我有以下枚举 enum Enum UInt8 case A 0x00 case B 0x01 case C 0x10 我使用以下代码将其转换为NSData var value Enum C let data NSData bytes val
  • 与 webpack 捆绑后,无法读取枚举的未定义属性

    我有一个 React 库 我想使用 Webpack 来构建它 该库是使用 Typescript 编写的 似乎一切正常 但由于某种原因枚举却不起作用 当我将库安装到我的 React 应用程序中时 我发现Cannot read properti
  • 将一个枚举设置为等于另一个枚举

    我在 2 个不同的对象中有 2 个枚举 我想设置enum在对象 1中等于enum在对象 2 中 这是我的对象 namespace MVC1 public enum MyEnum firstName lastName public class
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • C# 枚举 - 根据掩码检查标志

    我有以下枚举标志 Flags private enum MemoryProtection uint None 0x000 NoAccess 0x001 ReadOnly 0x002 ReadWrite 0x004 WriteCopy 0x0
  • Typescript Enum Object.values() 返回值

    为什么Object values and Object keys 总是同时给出键和值 考虑以下代码 enum Enum FOO BAR console log Object values Enum console log Object ke
  • 打字稿中枚举声明中的方括号的含义是什么?

    我正在浏览一个名为 Angular ngrx 项目的打字稿文件collection ts在那里 我看到声明了以下枚举常量 import Action from ngrx store import Book from models book
  • 嵌套枚举是静态的吗?

    读书时这个问题 https stackoverflow com questions 25011061 why can enum implementations not access private fields in the enum cl
  • Java 中的泛型枚举

    我有一个基本的 Configuration 类 它在枚举中提供所有可能的键和相应值类型的类型 如下所示 public class Configuration public static enum Key FIRST KEY actual k
  • 类,其中 T:枚举”不起作用[重复]

    这个问题在这里已经有答案了 可能的重复 创建将 T 约束为枚举的通用方法 https stackoverflow com questions 79126 create generic method constraining t to an
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si

随机推荐

  • 为 Rails 上的 postgresql 创建用户

    我选择 postgresql 作为我的 Rails 数据库 但当我尝试运行 rake db create all 时 我遇到了一个明显常见的错误 即 致命 角色 app 不存在 我找到了两种解决方案 但我不确定哪一种是正确的 有一个网站说
  • PHP MySql 百分比

    我的问题是关于百分比 我不是专家 所以我会尽力以更好的方式进行解释 我的 mysql 服务器中有一个表 假设有 700 条记录 如下所示 Name country language Birth Lucy UK EN 1980 Mari Ca
  • Dynamics Crm:获取状态代码/状态代码映射的元数据

    在 Dynamics CRM 2011 中 在事件实体上 状态原因 选项集 也称为状态代码 与 状态 选项集 也称为状态代码 相关 例如看这个截图 当我使用 API 检索状态原因选项集时 如下所示 RetrieveAttributeRequ
  • py2exe ImportError:没有名为 的模块

    我已经实现了一个名为 myUtils 的包 它由文件夹 myUtils 文件 组成 init py 和许多名称为 myUtils 的 py 文件 该包包含在 myOtherProject py 中 当我从 Eclipse 运行它们时可以找到
  • 如何正确创建迦太基 cartfile?

    我正在研究购物车文件 迫不及待地想 简单地创建一个购物车文件 就像所有说明所说的那样 只是 如何 简单地 创建一个 Cartfile 我创建了一个纯文本文档 将其命名为 cartfile 并在其中复制了一些依赖项 Ran carthage
  • C++ 标准中短语“构造函数没有名称”的含义

    在尝试理解 C 标准中的 构造函数没有名称 这句话时 我似乎在 clang 中发现了一个错误 有人可以证实这一点吗 VS2015 and gcc rejects this code and I think they it are is co
  • 如何设置旋转元素背面的样式?

    我有一个figure它是可旋转的 通过用户输入任意角度 该旋转明显地使用transition财产 当该元件旋转超过 90 度 90 度时 元件的背面可见 我想对元素的通常隐藏的一面进行与正面不同的设计 但我不确定如何实现这一点 figure
  • 如何在 Swift 中将文件名与文件扩展名分开?

    给定包中文件的名称 我想将该文件加载到我的 Swift 应用程序中 所以我需要使用这个方法 let soundURL NSBundle mainBundle URLForResource fname withExtension ext 无论
  • Swift 运行时库与 Swift 标准库

    In this 关于如何使用 CocoaPods 的教程 https www raywenderlich com 97014 use cocoapods with swift我无法理解以下段落 与 Objective C 不同 标准 Swi
  • 对范围值进行排序

    我想对表示数值范围的字符串数组进行排序 如下所示 b 0 5 100 250 5 25 50 100 250 500 25 50 使用sort我得到的方法 b sort gt 0 5 100 250 25 50 250 500 5 25 5
  • Rails 中的助手 - 构建 html 字符串时的最佳方法是什么?

    我通常这样写助手 def bloco vazio texto btn args titulo content tag h3 Vazio p content tag p texto content tag div titulo tag hr
  • ProcessPoolExecutor 传递多个参数

    ESPN播放器免费 class ESPNPlayerFree def init self player id match id match id team 团队名单1 277906 cA2i150s81HI3qbq1fzi za1Oq5CG
  • 数字和小数的输入掩码

    在测试我的程序后 我发现了以下错误 我在 sqlserver 中的表包含 价格数字 6 2 我的程序的用户输入价格 555 00 就很好了 但是当他输入 555555 时 这是错误的 所以我需要指定掩码 其中尾数是可选的 0 到 999 小
  • 对象克隆库的 Flash 复制?

    这可能是一个非常简单的问题 我只是不知道如何解决 我有一个想要复制的对象 但不知道如何进行 这是我的尝试 var myObj new ObjectClass var duplicate myObj duplicate null myObj
  • JMockit - 初始化问题

    当我使用以下测试时 我收到警告 警告 JMockit 是按需初始化的 这可能会导致某些测试失败 请检查文档以获取更好的初始化方法 这是我的测试实现 package test import static mockit Mockit impor
  • 闭包存储属性初始化有什么好处?

    初始化类的属性时 此代码有什么区别以及优点 缺点 1 let menuBar MenuBar let mb MenuBar return mb and 2 let menuBar MenuBar 两个代码片段都声明并初始化存储的属性 htt
  • Chrome 驱动程序和 Chromium 二进制文件无法在 aws lambda 上运行

    我陷入了一个问题 我需要在 AWS lambda 上做一些抓取工作 所以我按照下面提到的博客及其代码库作为起点 这非常有帮助 并且在运行时环境 Python 3 6 的 AWS lambda 上对我来说工作得很好 https manivan
  • 如何从spark中的hbase表中获取所有数据

    我在 hbase 中有一个大表 名称为 UserAction 它具有三个列族 歌曲 专辑 歌手 我需要从 歌曲 列族中获取所有数据作为 JavaRDD 对象 我尝试了这段代码 但效率不高 有更好的解决方案来做到这一点吗 static Spa
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • openApi schema 中不区分大小写的字符串参数

    我有一个开放的 API 规范 其参数如下 name platform in query description Platform of the application required true schema type string enu