sas*_*alm 24 swagger swagger-ui
如何导出Swagger定义文件(它应该是JSON或YAML文件)?我被要求这样做,而且我对Swagger只有粗略的了解.
我们确实有一个端点http://example.com//swagger/ui/index#!看起来像这样(截图不是我们真正的端点,但我不能发布):
版本是api version: v1.
我看不到"导出"按钮.那么我该如何导出呢?
Hel*_*len 42
API定义的URL显示在Swagger UI的顶部栏中 - 在您的示例中它是
/v2/api-docs?group=full-petstore-api
Run Code Online (Sandbox Code Playgroud)
所以完整的URL似乎是
http://localhost:8080/v2/api-docs?group=full-petstore-api
Run Code Online (Sandbox Code Playgroud)
在较新版本的Swagger UI中,API定义的链接通常显示在API标题下方,因此您可以右键单击链接并另存为.

如果您的Swagger UI没有指向API定义的可见链接,请查看页面源并查找url参数,例如:
const ui = SwaggerUIBundle({
url: "https://petstore.swagger.io/v2/swagger.json", // <-------
dom_id: '#swagger-ui',
Run Code Online (Sandbox Code Playgroud)
如果您没有看到url或如果url是代码表达式,请打开浏览器开发工具,切换到" 网络"选项卡并禁用缓存.然后刷新页面,搜索API定义文件(swagger.json,swagger.yaml,api-docsHTTP请求中或类似).您可以按XHR过滤以缩小列表范围.

Yas*_*N P 18
虽然它已经得到了回答并且它是正确的,但我想我会发布它的更详细的版本..希望这会有所帮助,
链接:https : //editor.swagger.io/#
打开 swagger ui,检查(Shift+Ctrl+i),刷新页面,您将获得如下所示的选项卡
在Network选项卡下选择XHR或 All 选项卡,检查文件api-doc?group=*并单击 subtab response。*现在复制 ap-doc?group.** 文件的内容并使用相同的编辑器链接转换为 yaml 文件
链接:https : //editor.swagger.io/#
JSON 也可以内联在文档中,特别是对于 Swagger 2.0 版。如果您在浏览@Helen 的回答后没有找到任何内容,请尝试以下操作:
"swagger"或"spec"如果您看到一个<script type="application/json">包含类似于以下内容的标签,这实际上就是您的swagger.json内容。复制<script>标签内的所有内容并保存到一个名为 swagger.json 的文件中,你应该很高兴。
<script id="swagger-data" type="application/json">
{"spec":{"definitions":{},"info":{},"paths":{},"schemes":[],"swagger":"2.0"}}
</script>
Run Code Online (Sandbox Code Playgroud)
我正在使用 Django Rest Framework(所以pippackage django-rest-swagger==2.2.0),上面的答案还不够。有两种选择:
1) 使用开发者工具查看页面源码。当我到达http://localhost:8000/docs/终点时,我看到:
该docs/终点在Django配置,所以它可能是你不同的。在深入研究细节时,我可以转到“响应”选项卡(在 Chrome 中)并向下滚动以找到实际的 JSON。它的价值在window.drsSpec
2)另一种(也许更简单)的方法是添加?format=openapi到我的端点,如https://github.com/marcgibbons/django-rest-swagger/issues/590 中所建议的
这将直接吐出您需要的JSON。我通过更改swagger字段将openapi其导入 Postman,该字段看起来有点像 hacky 但它起作用了???
| 归档时间: |
|
| 查看次数: |
28523 次 |
| 最近记录: |