我使用java spring引導框架爲我的項目創建REST api,並使用「springfox-swagger2和springfox-swagger-ui」來生成swagger文檔。我能夠使用網址http://localhost:8080/swagger-ui.html查看我的文檔。如何生成swagger.json
我如何箱或產生swagger.json/spec.json,該文件不應該使用這個應用程序,我們使用的是上市API文檔
我使用java spring引導框架爲我的項目創建REST api,並使用「springfox-swagger2和springfox-swagger-ui」來生成swagger文檔。我能夠使用網址http://localhost:8080/swagger-ui.html查看我的文檔。如何生成swagger.json
我如何箱或產生swagger.json/spec.json,該文件不應該使用這個應用程序,我們使用的是上市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();
}
}
}
}
我不知道這是正確的方式或不但它的工作:)
依賴
<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>
如果你使用Maven,您可以通過使用swagger-maven-plugin
添加到您的pom.xml生成客戶端和服務器端文件(YAML,JSON和HTML):
.....
<plugin>
<groupId>com.github.kongchen</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<apiSources>
<apiSource>
<springmvc>true</springmvc>
<locations>com.yourcontrollers.package.v1</locations>
<schemes>http,https</schemes>
<host>localhost:8080</host>
<basePath>/api-doc</basePath>
<info>
<title>Your API name</title>
<version>v1</version>
<description> description of your API</description>
<termsOfService>
http://www.yourterms.com
</termsOfService>
<contact>
<email>[email protected]</email>
<name>Your Name</name>
<url>http://www.contact-url.com</url>
</contact>
<license>
<url>http://www.licence-url.com</url>
<name>Commercial</name>
</license>
</info>
<!-- Support classpath or file absolute path here.
1) classpath e.g: "classpath:/markdown.hbs", "classpath:/templates/hello.html"
2) file e.g: "${basedir}/src/main/resources/markdown.hbs",
"${basedir}/src/main/resources/template/hello.html" -->
<templatePath>${basedir}/templates/strapdown.html.hbs</templatePath>
<outputPath>${basedir}/generated/document.html</outputPath>
<swaggerDirectory>generated/swagger-ui</swaggerDirectory>
<securityDefinitions>
<securityDefinition>
<name>basicAuth</name>
<type>basic</type>
</securityDefinition>
</securityDefinitions>
</apiSource>
</apiSources>
</configuration>
</plugin> ........
您可以下載*在這個地址.hbs模板: https://github.com/kongchen/swagger-maven-example
執行MVN招搖:產生 JSON文件將在您的項目/生成/昂首闊步/目錄中生成。 過去,該地址: http://editor.swagger.io
,並生成你想要什麼都(在你的首選技術,服務器端或客戶端API)
我有點晚了這裏,但我想通了,你可以打開您的瀏覽器控制檯並找到返回您的Swagger文檔的JSON定義的GET請求的URL。將我的API映射到AWS API網關時,以下技術適用於我。
要做到這一點:
?format=openapi
+您必須複製XHR請求的響應正文內容,其中JSON可用 – Vijai
如何d你從這個URL下載swagger.json/spec.json文件? –
在瀏覽器中鍵入完整的URL ..並且您得到JSON作爲響應。其中可以剪切和粘貼爲json文件 –