Как создать swagger.json
Я использую java spring boot framework для создания REST API для моего проекта, и я использую "springfox-swagger2 и springfox-swagger-ui" для генерации документации swagger. Я могу просмотреть свою документацию по URL http://localhost:8080/swagger-ui.html.
Как я могу создать или сгенерировать swagger.json/spec.json, документация не должна быть с этим приложением, мы используем отдельное приложение для перечисления документации по API.
Ответы
Ответ 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>
Ответ 2
Вы можете получить URL с вашей HTML-страницы Swagger-UI:
![enter image description here]()
GET http://localhost:8080/v2/api-docs?group=App
И на самом деле вы можете получить все URL-адреса с помощью функции Chrome/Firefox.
Ответ 3
Если вы используете Maven, вы можете генерировать документацию на стороне клиента и на сервере (yaml, json и html) с помощью swagger-maven-plugin
Добавьте это к вашему pom.xml:
.....
<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 swagger: сгенерируйте документацию JSon, которая будет сгенерирована в вашем каталоге /genaged/swagger/. Пройдите по этому адресу: http://editor.swagger.io
И генерировать то, что вы хотите (на стороне сервера или на стороне клиента API в вашей предпочтительной технологии)
Ответ 4
Я немного опаздываю здесь, но я просто понял, что вы можете открыть консоль своего браузера и найти URL-адрес для запроса GET, который возвращает определение JSON для ваших документов Swagger. Следующий метод работал у меня при сопоставлении моего API с AWS API Gateway.
Для этого:
- Перейдите к конечной точке документа Swagger
- Откройте консоль браузера
- Обновить страницу
- Перейдите на вкладку сети и выполните фильтрацию по запросам XHR.
- Щелкните правой кнопкой мыши на запросе XHR, который заканчивается на
?format=openapi
- Теперь вы можете просто скопировать и вставить его в новый файл JSON!
Ответ 5
Вы должны иметь возможность получить ваш swagger.json на
http://localhost:8080/api-docs
при условии, что вы не сохранили версии, как в примере приложения зоомагазина. В этом случае URL будет:
http://localhost:8080/v2/api-docs
Ответ 6
Чтобы получить определение API JSON для REST API, если swagger настроен правильно. Вы можете использовать непосредственно swagger/docs/v1, это означает, что полный URL будет, если версия v1 (или просто указать версию)
HTTP://локальный: 8080/чванство /Docs/v1
Ответ 7
Кто-нибудь взломает МОЮ ЧАСТЬ СИСТЕМЫ И РАБОТЫ С ПОМОЩЬЮ ТЕЛЕФОНА, КОГДА ИМ ЕЕ ИДЕТ... система, которую я пытаюсь ЗАКРЫТЬ... НО НЕ МОЖЕТ ДЕЛАТЬ ЭТО..
17 FHONE WORK MY FHONE.. Так что это не мои проблемы У нас есть скриншот, сообщите в Google