当前位置: 首页 > 知识库问答 >
问题:

在参数中使用枚举定义(招摇)

鲍驰
2023-03-14

我希望能够使用此枚举定义:

  goalStatus:
    type: string
    enum:
      - ACTIVE
      - COMPLETED
      - FULFILLED
      - DELETED

...然而,在参数定义内部,我不断得到错误:

get:
  description: Returns all goals for a customer
  operationId: listGoals
  parameters:
    - name: status
      in: query
      description: filter by goal status
      required: false
      schema:
        $ref: "#/definitions/goalStatus"

错误:

Swager错误:不是有效的参数定义

共有1个答案

梁烨烨
2023-03-14

不幸的是,OpenAPI 2.0(fka. Swagger)没有使用模式对象定义查询参数。因此,您不能使用对goalState定义的引用(它适用于主体参数)。

您可以做的是定义一个可重用的参数,但是如果您想在其他定义中重用这个枚举,您必须定义它两次(一次在定义中,一次在参数中)。即将到来的OpenAPI 3.0版本通过允许用模式定义所有参数类型来解决这个问题。

下面是使用可重用参数的 2.0 版示例:

swagger: '2.0'

info:
  version: 1.0.0
  title: Parameter with enum example

paths:
  /goals:
    get:
      description: Returns all goals for a customer
      operationId: listGoals
      parameters:
        - $ref: "#/parameters/goalFilter"
      responses:
        200:
          description: OK

parameters:
  goalFilter:
    name: status
    in: query
    description: filter by goal status
    required: false
    type: string
    enum:
      - ACTIVE
      - COMPLETED
      - FULFILLED
      - DELETED
 类似资料:
  • 我想使用中定义的枚举作为查询字符串中参数定义的一部分。 我在我的Swagger 2.0规范文件的< code>definitions部分定义了Swagger枚举。 我可以在其他定义中创建对它的引用: 当参数在:body中为中为

  • 问题内容: 我以为我很了解Java泛型,但是随后在java.lang.Enum中遇到了以下内容: 有人可以解释如何解释此类型参数吗?奖励点,用于提供可以使用类似类型参数的其他示例。 问题答案: 这意味着枚举的类型参数必须从本身具有相同类型参数的枚举派生。怎么会这样 通过使类型参数成为新类型本身。因此,如果我有一个名为StatusCode的枚举,则它等效于: 现在,如果你检查的限制,我们已经得到了-

  • 让我们看看一个需要诉诸于代码的场景,来考虑为何此时使用枚举更为合适且实用。假设我们要处理 IP 地址。目前被广泛使用的两个主要 IP 标准:IPv4(version four)和 IPv6(version six)。这是我们的程序可能会遇到的所有可能的 IP 地址类型:所以可以 枚举 出所有可能的值,这也正是此枚举名字的由来。 任何一个 IP 地址要么是 IPv4 的要么是 IPv6 的,而且不能

  • 问题内容: 我有一个通过ctypes访问的结构: 到目前为止,我有类似以下的Python代码: 但是我不确定该用什么枚举。我应该将其映射到a还是? 问题答案: 至少对于GCC来说,只是一个简单的数字类型。它可以是8位,16位,32位,64位或其他任何值(我已经用64位值对其进行了测试)以及或。我猜它不能超过,但是实际上你应该检查你的范围并选择类似。 这是一个例子。C程序: 和Python之一:

  • 我有以下endpoint 和下面的用注释 我希望,

  • enum 关键字允许创建一个代表数个可能变量的数据的类型(原文:The enum keyword allows the creation of a type which may be one of a few different variants.若您对此句有 更好的翻译或理解,希望指出来,谢谢。)。在 struct 中任何合法的变量在 enum 同样是合法的。 // 隐藏未使用代码警告的属性。