如何使用 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}
是路径变量。
我想使用 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}
是路径变量。