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

How do I parametrize a URL for POST using Swagger?

我想使用 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 of id), 在它下面定义一个sub path of books;也许 employees 中的另一个 sub path?

简短的回答是否定的。

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

然后您可以使用 tags.

对资源列表进行分组

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

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

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

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