在OpenAPI中,我可以使用常规模式组件作为参数吗?

在OpenAPI中,我可以使用常规模式组件作为参数吗?,openapi,Openapi,我在API中定义了一个端点,该端点采用路径参数 该参数的有效值已表示为枚举,我已将其定义为架构组件并在响应中使用 两个问题: 如果您可以使用对该模式组件的引用作为参数,那么为什么要设置专用的参数组件,而不是使用可以在任何地方重复使用的通用模式组件呢 如果应该使用参数而不是通用模式,是否可以创建引用模式组件的参数组件?我找不到任何通过验证的语法 我想在这里粘贴我的定义,但我找不到任何格式选项,不会造成可怕的混乱 如果您可以使用对该模式组件的引用作为参数,那么为什么要设置专用的参数组件,而不是使用可

我在API中定义了一个端点,该端点采用路径参数

该参数的有效值已表示为枚举,我已将其定义为架构组件并在响应中使用

两个问题:

  • 如果您可以使用对该模式组件的引用作为参数,那么为什么要设置专用的参数组件,而不是使用可以在任何地方重复使用的通用模式组件呢
  • 如果应该使用参数而不是通用模式,是否可以创建引用模式组件的参数组件?我找不到任何通过验证的语法
  • 我想在这里粘贴我的定义,但我找不到任何格式选项,不会造成可怕的混乱

    如果您可以使用对该模式组件的引用作为参数,那么为什么要设置专用的参数组件,而不是使用可以在任何地方重复使用的通用模式组件呢

    具有架构中不存在的其他属性,例如数组和对象值的请求中的参数位置(
    in:path
    in:query
    ,等等)。
    schema
    只是参数属性之一,但仅仅一个schema并不能提供足够的信息来有效地描述参数

    能否创建引用架构组件的参数组件

    对。参数具有
    架构
    ,它可以是内联架构或
    $ref

    路径:
    /something/{role}:
    获取:
    参数:
    -$ref:“#/components/parameters/role”
    ...
    组件:
    参数:
    角色:
    在:路径
    名称:角色
    必填项:true
    模式:
    
    $ref:“#/components/schemas/UserRole”#谢谢!我想我已经试过这种语法了。不知道区别是什么,但这是有效的。