【问题标题】:Can OpenAPI schema names have "/" in them?OpenAPI 模式名称中可以包含“/”吗?
【发布时间】:2019-07-17 15:28:28
【问题描述】:

我正在使用一个 API,它使用“foo/bar”之类的字符串来识别(区分)JSON 对象。

$ref 之类的 $ref: '#/components/schemas/foo/bar' 给了我错误。

是否支持此命名?我想利用 API 提供的这些属性来使用区分来选择最合适的组件架构。

我使用的是 OpenAPI 3.0.1。

【问题讨论】:

  • 在您的 JSON 中,“foo/bar”是否用作键 name 或键 value
  • 这是值,我想映射到一个 swagger 组件架构
  • 那么没有理由在架构 names 中使用 /。您可以将架构命名为 FooBar 并使用 discriminator.mappings 处理映射。

标签: openapi


【解决方案1】:

没有。

OpenAPI 3.0 组件名称(包括架构名称)只能包含以下字符:

a-z A-Z 0-9 - . _

(Source)


但是,模式中的属性名没有限制,所以/可以用在属性名中:

components:
  schemas:
    MySchema:
      type: object
      properties:
        foo/bar:   # <-----
          type: string

【讨论】:

    猜你喜欢
    • 2013-09-25
    • 2018-11-03
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    相关资源
    最近更新 更多