如何为具有相同基本路径但不同请求结构的2 api定义swagger规范?

时间:2017-12-05 02:50:33

标签: swagger swagger-ui jsdoc

示例:

这是第一个定义:

/**
 * @swagger
 * /a/b/items:
 *   get:
 *     description: Get all the items
 *     responses:
 *      200:
 *          Returns an array of items
 */

这是第二个定义:

/**
 * @swagger
 * /a/b/items:
 *   get:
 *     description: Get items by ids
 *     parameters:
 *      - name: ids
 *        in: query
 *        required: true
 *        schema:
 *          $ref: '#/definitions/itemIds'
 *
 *     responses:
 *      200:
 *          description: Returns an array of items, given the itemIds
 */

很明显,这里的区别在于请求结构。 请注意,对于第二个定义,我想在查询中传递参数ID。

第一个定义是一个简单的get请求,没有任何路径参数或查询参数。

第二个定义是具有相同基本路径但带有查询参数的get请求。

当我连续定义这两个时,第二个定义将写入第一个,而Swagger UI仅显示第二个。

非常希望将这两个定义作为唯一定义。

任何解决方案/想法/方法来实现独特性?

将apis更改为支持文档只是一个" No go"!

任何帮助将不胜感激。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

我认为第二个定义中的端点需要更改为:

/a/b/items/{ids}: