如何在 Open API 3.0 中为 GET API 定义 Map 对象

问题描述 投票:0回答:2

我有 GET API,它将 Map 作为请求参数。如何在 Open API 3.0 中以 yaml 格式定义它

@GetMapping
public void getDevicesInfo(@RequestParam(required = false) Map parameters)
{

}

开放API不支持地图类型。

java yaml swagger openapi openapi-generator
2个回答
9
投票

在您的

YAML
文件中,您需要为 Java 中的
additionalProperties
添加
Map
,并使用
parameters
来表示
@RequestParam
,如下所示:

/api/v1/test:
  get:
    tags:
      - test
    operationId: getDevicesInfo
    parameters:
      - name: parameters
        in: query
        required: false
        schema:
          type: object
          additionalProperties:
            type: object
    responses:
      '200':
        description: OK

生成的 GET API 如下所示:

enter image description here

希望对你有帮助:)


0
投票

我有一个类似的用例,我必须定义一个返回 Map 和 List 的 GET api。这就是我从 Suraj 的答案中得到暗示而实现的:

SchemaName:
   type: object
   properties:
     property1: //returns string
       type: string
     property2:  //returns Map<String, String>
       type: object
       additionalProperties:
         type: string
     property3:   //returns List<String>
       type: array
       items:
         type: string
© www.soinside.com 2019 - 2024. All rights reserved.