一尘不染

如何生成swagger.json

spring-mvc

我正在使用Java Spring Boot框架为我的项目创建REST api,并且正在使用“ springfox-swagger2和springfox-
swagger-ui”生成摇摇欲坠的文档。我可以使用URL http:// localhost:8080 / swagger-
ui.html
查看我的文档。

如何创建或生成swagger.json / spec.json ,文档不应该包含在此应用程序中,我们使用单独的应用程序列出了API文档。


阅读 3713

收藏
2020-06-01

共1个答案

一尘不染

我已经做了一个小技巧

我在家庭控制器测试用例的末尾添加了以下代码

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();
        }

    }

}
}

我不知道这是不是正确的方法,但是它正在工作:)

相依性

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.4.0</version>
    </dependency>

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.6.1</version>
    </dependency>
2020-06-01