如何使用Swagger参数化POST的URL?

时间:2015-07-20 00:47:58

标签: rest swagger swagger-ui

我想使用Swagger定义以下路径:

/api/libraries/1234/books

POST一本书到图书馆的书籍集合,其ID为1234

在示例中,我在此处看到:https://github.com/swagger-api/swagger-spec/blob/master/examples/v2.0/json/petstore-with-external-docs.json

它显示为,您可以指定例如:libraries/{id}/books,但您必须将其定义为单独的路径对象。

例如,与libraries进行比较,用于GET目的;它会检索你的库列表。

有没有办法定义sub path对象(例如:在...下) libraries定义sub path id},sub path books;也许是sub path的另一个employees

2 个答案:

答案 0 :(得分:3)

简短的回答是否定的。

根据swagger规范2.0,不支持嵌套路径;你必须独立定义路径(https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#pathItemObject)。

然后,您可以使用 标记 对资源列表进行分组。

拥有原子路径的原因在于swaggers强烈遵守REST规范。在REST中,资源链接到独立的原子操作(与SOAP / RPC不同)。

答案 1 :(得分:1)

不确定我是否正确理解您的问题,但如果您想为/api/libraries/1234/books/5678/employees/9999定义路径变量作为示例,则路径应如下所示:

/api/libraries/{library_id}/books/{book_id}/employees/{employe_id}

其中{library_id}{book_id}{employee_id}是路径变量。