2017-04-12 91 views
0

我希望能够用这个ENUM的定义:使用ENUM定义的参数(SWAGGER)内

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" 

错误:

Swagger Error: Not a valid parameter definition

回答

2

不幸的是,所述OpenAPI 2.0(FKA扬鞭)没有定义具有模式对象的10个参数。因此,您不能使用对您的goalStatus定义的引用(它适用于身体参数)。

你可以做的是定义一个可重用的参数,但是如果你想在其他定义中重用这个枚举,你必须定义它两次(一次定义一次参数)。即将推出的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