Swagger 2 문 서 를 HTML 이나 markdown 등 형식 으로 오프라인 으로 내 보 냅 니 다.
인터넷 에는'swagger 2 를 사용 하여 API 문 서 를 구축 합 니 다'라 는 글 이 많 습 니 다.이 문 서 는 온라인 문서 로 HTTP 로 접근 해 야 합 니 다.그러나 우리 가 일상적으로 swagger 인터페이스 문 서 를 사용 할 때,때때로 인터페이스 문 서 를 오프라인 으로 접근 해 야 한다.예 를 들 어 문 서 를 html,markdown 형식 으로 내 보 내 는 것 이다.또한 저 희 는 응용 시스템 과 swagger 인터페이스 문서 가 같은 서 비 스 를 사용 하 는 것 을 원 하지 않 고 HTML 을 내 보 낸 후에 따로 배치 하 는 것 을 원 합 니 다.이렇게 하면 인터페이스 문서 에 대한 방문 이 업무 시스템 에 영향 을 주지 않 고 어느 정도 인터페이스 문서 의 안전성 을 향상 시 켰 습 니 다.핵심 적 인 실현 과정 은:
4.567917.swagger 2 인터페이스 문서 가 있 는 응용 프로그램 에서 swagger 2 markup 을 이용 하여 인터페이스 문 서 를 adoc 파일 로 내 보 내 고 markdown 파일 도 내 보 낼 수 있 습 니 다
1.maven 의존 라 이브 러 리
swagger 2 가 통합 되 어 있 는 응용 프로그램 에서 maven 좌 표를 통 해 관련 의존 라 이브 러 리 를 도입 합 니 다.pom.xml 코드 는 다음 과 같 습 니 다.
<dependency>
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-core</artifactId>
<version>1.5.16</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.16</version>
</dependency>
swagger2markup 은 swagger 2 온라인 인터페이스 문 서 를 html,markdown,adoc 등 형식 문서 로 내 보 내 고 정적 배치 나 오프라인 읽 기 에 사용 합 니 다.그 중 첫 번 째 Maven 좌 표 는 필수 입 니 다.다음 두 개의 maven 좌 표 는 다음 코드 를 실행 하 는 과정 에서 다음 그림 의 ERROR 을 보고 하거나 import 가 불가능 할 때 사용 합 니 다.이상 이 발생 한 원인 은 이미 github 의 issues 에 설명 되 었 습 니 다.swagger-core 버 전 을 사용 하면 1.5.11 이상 이 고 swagger-models 버 전이 1.5.11 보다 적 으 면 이상 이 발생 할 수 있 습 니 다.그래서 우 리 는 이 두 개의 jar 를 현저하게 도입 하여 swagger 2 가 기본적으로 도입 한 두 개의 jar 를 교체 합 니 다.
2.adoc 형식 파일 생 성
다음 코드 는 인 코딩 을 통 해 이 루어 진 adoc 형식 파일 을 만 드 는 방식 입 니 다.
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public class DemoApplicationTests {
@Test
public void generateAsciiDocs() throws Exception {
// Ascii
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage(MarkupLanguage.ASCIIDOC) //
.withOutputLanguage(Language.ZH) //
.withPathsGroupedBy(GroupBy.TAGS)
.withGeneratedExamples()
.withoutInlineSchema()
.build();
Swagger2MarkupConverter.from(new URL("http://localhost:8888/v2/api-docs"))
.withConfig(config)
.build()
.toFile(Paths.get("src/main/resources/docs/asciidoc"));
}
}
RunWith 주해 와 SpringBootTest 주 해 를 사용 하여 응용 서비스 용 기 를 시작 합 니 다.SpringBootTest.WebEnvironment.DEFINED_PORT 는 하나의 포트 를 무 작위 로 사용 하여 테스트 하 는 것 이 아니 라 application.yml 이 정의 하 는 포트 를 사용 하 는 것 이 중요 하 다 고 밝 혔 다.Swagger2markup Config 는 파일 의 형식 과 파일 의 자연 언어 등 출력 파일 의 설정 입 니 다.
Swagger2markupConverter 의 from 은 자원 내 보 내기 의 원본(JSON 형식)으로 어떤 HTTP 서 비 스 를 사용 하 는 지 표시 합 니 다.이 링크 를 직접 방문 해 보 세 요.8888 은 나의 서비스 포트 입 니 다.당신 의 응용 설정 에 따라 수정 해 야 합 니 다.
toFile 은 파일 이 저 장 된 위 치 를 내 보 낼 것 이 며 접미사 이름 을 붙 이지 않 아 도 됩 니 다.toFolder 를 사용 하여 파일 이 저 장 된 경 로 를 내 보 낼 수도 있 습 니 다.두 가지 차이 점 은 toFolder 를 사용 하여 파일 디 렉 터 리 로 내 보 내 고 태그 TAGS 에 따라 분 류 된 여러 파일 을 내 보 내 는 것 입 니 다.toFile 을 사용 하면 파일(toFolder 여러 파일 의 집합)을 내 보 냅 니 다.
@Test
public void generateMarkdownDocsToFile() throws Exception {
// Markdown
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage(MarkupLanguage.MARKDOWN)
.withOutputLanguage(Language.ZH)
.withPathsGroupedBy(GroupBy.TAGS)
.withGeneratedExamples()
.withoutInlineSchema()
.build();
Swagger2MarkupConverter.from(new URL("http://localhost:8888/v2/api-docs"))
.withConfig(config)
.build()
.toFile(Paths.get("src/main/resources/docs/markdown"));
}
위의 이 코드 는 markdown 형식 인터페이스 파일 을 만 드 는 코드 입 니 다.위의 2 단 단원 테스트 코드 를 실행 하면 대응 하 는 형식의 인터페이스 파일 을 생산 할 수 있다.maven 플러그 인 을 통 해 adoc 와 markdown 형식의 인터페이스 파일 을 만 드 는 방법 도 있 습 니 다.필 자 는 이런 방식 을 자주 사용 하지 않 고 코드 생 성 방식 으로 유연 하 게 설정 하지 않 았 으 며 많은 설정 을 pom.xml 에 넣 으 면 비대 함 을 느 꼈 다.그래도 소개 하 겠 습 니 다.우선 Maven 플러그 인 swagger2markup-maven-plugin 을 설정 합 니 다.
<plugin>
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup-maven-plugin</artifactId>
<version>1.3.1</version>
<configuration>
<swaggerInput>http://localhost:8888/v2/api-docs</swaggerInput><!---swagger-api-json -->
<outputDir>src/main/resources/docs/asciidoc</outputDir><!--- -->
<config>
<swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage><!-- -->
</config>
</configuration>
</plugin>
그리고 플러그 인 을 실행 하면 됩 니 다.다음 그림:3.maven 플러그 인 을 통 해 HTML 문서 생 성
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.6</version>
<configuration>
<!--asciidoc -->
<sourceDirectory>src/main/resources/docs</sourceDirectory>
<!--- html -->
<outputDirectory>src/main/resources/html</outputDirectory>
<backend>html</backend>
<sourceHighlighter>coderay</sourceHighlighter>
<attributes>
<!-- -->
<toc>left</toc>
<!-- -->
<!--<toclevels>3</toclevels>-->
<!-- -->
<sectnums>true</sectnums>
</attributes>
</configuration>
</plugin>
adoc 의 sourceDirectory 경 로 는 세 번 째 소절 에서 생 성 된 adoc 파일 경로 와 일치 해 야 합 니 다.그리고 다음 그림 방식 으로 플러그 인 을 실행 합 니 다.HTMl 인터페이스 문서 의 효 과 는 다음 과 같 습 니 다.HTML 인터페이스 문서 가 있 으 면 다른 형식의 문서 로 바 꾸 기 가 너무 편리 하고 사용 할 수 있 는 도구 가 많 습 니 다.여 기 는 일일이 소개 하지 않 겠 습 니 다.
총결산
위 에서 설명 한 것 은 스 와 거 2 문 서 를 HTML 이나 markdown 등 형식 으로 오프라인 으로 내 보 내 는 것 입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SpringBoot 통합 Swagger 2 방법현재 많은 회사 들 이 앞 뒤 가 분 리 된 개발 모델 을 채택 하고 있 으 며,전단 과 백 엔 드 의 업 무 는 서로 다른 엔지니어 가 완성 하고 있다.이러한 개발 모델 에서 제때에 업데이트 되 고 완전한 Rest...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.