我正在使用java spring boot框架为我的项目创建REST api,我使用"springfox-swagger2和springfox-swagger-ui"来生成swagger文档.我可以使用url http:// localhost:8080/swagger-ui.html查看我的文档.
如何创建或生成swagger.json/spec.json,文档不应该与此应用程序一起使用我们使用单独的应用程序列出api文档
您可以使用swagger-ui html页面获取网址:
GET http://localhost:8080/v2/api-docs?group=App
实际上你可以通过chrome/firefox开发工具网络功能获得所有网址.
我来晚了一点,但是我发现您可以打开浏览器控制台,找到GET请求的URL,该请求返回Swagger文档的JSON定义。将我的API映射到AWS API Gateway时,以下技术对我有用。
去做这个:
导航到您的Swagger文档端点
打开浏览器控制台
刷新页面
导航到“网络”选项卡并按XHR请求进行过滤
右键单击以结尾的XHR请求 ?format=openapi
您现在可以将其复制并粘贴到新的JSON文件中!
如果使用Maven,则可以使用swagger-maven-plugin生成客户端和服务器端文档(yaml,json和html)。
将此添加到您的pom.xml中:
............. com.github.kongchen swagger-maven-plugin 3.0.1 true com.yourcontrollers.package.v1 http,https localhost:8080 /api-doc Your API name v1 description of your API http://www.yourterms.com your-email@email.com Your Name http://www.contact-url.com http://www.licence-url.com Commercial ${basedir}/templates/strapdown.html.hbs ${basedir}/generated/document.html generated/swagger-ui basicAuth basic
您可以在以下地址下载* .hbs模板:https : //github.com/kongchen/swagger-maven-example
执行mvn swagger:generate JSon文档将在您的项目/ generation / swagger /目录中生成。将其粘贴到此地址:http : //editor.swagger.io
并生成所需的内容(首选技术中的服务器端或客户端API)
我用一个小技巧完成了这个
我在家庭控制器测试用例的末尾添加了以下代码
import org.springframework.boot.test.web.client.TestRestTemplate; public class HomeControllerTest extends .... ...... { @Autowired private TestRestTemplate restTemplate; @Test public void testHome() throws Exception { //....... //... my home controller test code //..... String swagger = this.restTemplate.getForObject("/v2/api-docs", String.class); this.writeFile("spec.json", swagger ); } public void writeFile(String fileName, String content) { File theDir = new File("swagger"); if (!theDir.exists()) { try{ theDir.mkdir(); } catch(SecurityException se){ } } BufferedWriter bw = null; FileWriter fw = null; try { fw = new FileWriter("swagger/"+fileName); bw = new BufferedWriter(fw); bw.write(content); } catch (IOException e) { e.printStackTrace(); } finally { try { if (bw != null) bw.close(); if (fw != null) fw.close(); } catch (IOException ex) { ex.printStackTrace(); } } } }
我不知道这是正确的方式但是它正在工作:)
依赖
io.springfox springfox-swagger2 2.4.0 io.springfox springfox-swagger-ui 2.6.1
您应该可以在以下位置获取swagger.json
http:// localhost:8080 / api-docs
假设您没有像pet store示例应用程序中那样保留版本。在这种情况下,URL为:
http:// localhost:8080 / v2 / api-docs