If you don't see the url or if url is a code expression, open the browser dev tools, switch to the Network tab and disable caching. Then refresh the page and search for the API definition file (swagger.json, swagger.yaml, api-docs or similar) among HTTP requests. You can filter by XHR to narrow down the list.
Another way to find the actual url is to use the browser console and evaluate one of the following values, depending on your UI version:
Swagger UI 3.x:
ui.getConfigs().url
Swagger UI 2.x:
swaggerUi.api.url
Sometimes the OpenAPI definition may be embedded within a .js file – in this case take this file and strip out the extra parts.
Though it's already been answered and it's the correct one, I thought I shall post the much detailed version of it.. Hope this helps,
If you do have the swagger json file which you feed to the swagger UI, then to generate .yaml file just click on the below link copy-paste your json in the editor and download the yaml file. This is a straight forward method
Now the second way where you don't have any swagger json file then the following steps should help,
Open the swagger ui, inspect (Shift+Ctrl+i), refresh the page and you will get the tabs like below
Choose XHR or All tab under Network tab, check for the file api-doc?group=* and click subtab response. *Now copy the content of ap-doc?group.** file and use the same editor link to convert to yaml file
The JSON may also be inlined in the document, specifically for Swagger version 2.0. If you haven't found anything after walking through @Helen's answer give this a try:
View Page Source
Search for "swagger" or "spec"
If you see a <script type="application/json"> tag with something similar to the following in it, this is effectively your swagger.json content. Copy everything inside of the <script> tags and save into a file named swagger.json and you should be good to go.
I'm using Django Rest Framework (so pip package django-rest-swagger==2.2.0) and the above answers weren't really sufficient. There were two options:
1) View the page source with developer tools. When I hit my http://localhost:8000/docs/ endpoint, I see:
The docs/ endpoint was configured in Django, so it may be different for you. When digging into the details of that, I can go to the Response tab (in Chrome) and scroll down to find the actual JSON. It's the value in window.drsSpec
This will directly spit out the JSON you need. I imported it into Postman by changing the swagger field to openapi which seems a little hacky but it worked 🤷🏻♂️