我使用java spring boot框架为我的项目创建REST api,我使用“springfox-swagger2和springfox-swagger-ui”生成swagger文档。我可以使用网址http://localhost:8080/swagger-ui.html查看我的文档。
如何创建或生成swagger.json / spec.json ,文档不应该与此应用程序一起使用我们使用单独的应用程序列出api文档
答案 0 :(得分:16)
您可以使用swagger-ui html页面获取网址:
GET http://localhost:8080/v2/api-docs?group=App
实际上,您可以使用chrome / firefox开发工具网络功能获取所有网址。
答案 1 :(得分:8)
我用一个小技巧
完成了这个我在家庭控制器测试用例的末尾添加了以下代码
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>
答案 2 :(得分:6)
如果您使用Maven,则可以使用swagger-maven-plugin生成客户端和服务器端文档(yaml,json和html)
将其添加到您的pom.xml:
public static void main(String[] args) throws IOException {
Set<String> lines = new TreeSet<>(Comparator.comparing(o -> o.substring(o.indexOf(','))));
// New BufferedReader.
BufferedReader reader = new BufferedReader(new FileReader("sample.txt"));
// Add all lines from file to ArrayList.
while (true) {
String line = reader.readLine();
if (line == null) {
break;
}
lines.add(line);
}
// Close it.
reader.close();
// Print each line.
for (String line : lines) {
System.out.println(line);
}
}
您可以在此地址下载* .hbs模板: https://github.com/kongchen/swagger-maven-example
执行mvn swagger:generate JSon文档将在您的project / generated / swagger /目录中生成。 过去就在这个地址: http://editor.swagger.io
生成您想要的内容(首选技术中的服务器端或客户端API)
答案 3 :(得分:4)
我在这里有点晚了,但我发现你可以打开浏览器控制台并找到GET请求的URL,它返回Swagger文档的JSON定义。将API映射到AWS API Gateway时,以下技术对我有用。
要做到这一点:
?format=openapi
答案 4 :(得分:4)
答案 5 :(得分:0)
如果正确配置了swagger,则将获取REST API的api json定义。您可以直接使用swagger / docs / v1,这意味着如果版本为v1(或仅指定版本),则完整的网址为