当前位置:网站首页>[solved] how to generate a beautiful static document description page
[solved] how to generate a beautiful static document description page
2022-07-06 01:24:00 【A rookie is a great God】
Often asked recently ITMuch API How to make document pages , Considering the slightly complicated steps , Write a note to summarize .
TIPS
ITMuch API It's a personal video on Muke website 《 Microservices for the future :Spring Cloud Alibaba From entry to advanced 》 Supporting documents for practical projects .
effect

The overall steps
- Integrate Swagger, Generate Swagger Describe the endpoint
/v2/api-docs - Use
swagger2markup-maven-plugin, take/v2/api-docsGenerate ASCIIDOC file ; - Use
asciidoctor-maven-plugin, take ASCIIDOC File conversion to HTML; - Deploy
Integrate Swagger
TIPS
Swagger Is very simple to use , This article will not discuss , Please check the usage of Baidu by yourself .
Commonly used annotations :
- @Api
- @ApiOperation
- @ApiModel
- @ApiModelProperty
Plus dependence
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
<!-- swagger --> <!-- The reason to exclude , It is because if it is not excluded, it will report NumberFormatException Warning of . --> <!-- Reference resources :https://github.com/springfox/springfox/issues/2265--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> </exclusion> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.21</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.5.21</version> </dependency>To configure Swagger( Configure according to your own needs , The following configuration codes are for reference only )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
/** * @author itmuch.com */ @Configuration @EnableSwagger2 public class SwaggerConfiguration { /** * swagger Information * * @return Page information */ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("ITMuch API") .description("ITMuch API") .termsOfServiceUrl("") .version("1.0.0") .contact(new Contact("", "", "")).build(); } @Bean public Docket customImplementation() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.itmuch")) .paths(PathSelectors.any()) .build() .apiInfo(this.apiInfo()); //.globalOperationParameters(parameters); } }Interface for Swagger annotation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
@RestController @RequestMapping("/notices") @RequiredArgsConstructor(onConstructor = @__(@Autowired)) @Api(tags = " Announcement related interfaces ", description = " Announcement related interfaces ") public class NoticeController { /** * Check the latest announcement * * @return Announcement list */ @GetMapping("/newest") @ApiOperation(value = " Check the latest announcement ", notes = " be used for : Notice ") public Notice findNewest() { return new Notice(); } } @AllArgsConstructor @NoArgsConstructor @Builder @Data @ApiModel(" Notice ") public class Notice { /** * ID */ @ApiModelProperty("id") private Integer id; /** * Announcement content */ @ApiModelProperty(" Announcement content ") private String content; ... }
- such , After the application is started , There will be one
/v2/api-docsEndpoint , Describe your API Information about .
Generate ASCIIDOC
stay pom.xml To add the following :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <build>
<plugins>
<plugin>
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup-maven-plugin</artifactId>
<version>1.3.1</version>
<configuration>
<!-- api-docs visit url -->
<swaggerInput>http://localhost:8080/v2/api-docs</swaggerInput>
<!-- Generate as a single document , The output path -->
<outputFile>src/docs/asciidoc/generated/all</outputFile>
<config>
<!-- ascii Format document -->
<swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
<swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy>
</config>
</configuration>
</plugin>
...
|
swagger2markup-maven-plugin The function of the plug-in is to read http://localhost:8080/v2/api-docs Information about , Generate ASCIIDOC file . Of course, you can also generate other formats , such as Markdown wait .
This plug-in also has a lot of gestures , See GitHub - Swagger2Markup/swagger2markup-maven-plugin: A Swagger2Markup Maven Plugin
Generate HTML
below , Only need to ASCIIDOC convert to html Just OK 了 , stay pom.xml To add the following :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <build>
<plugins>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.6</version>
<configuration>
<!-- asciidoc Document input path -->
<sourceDirectory>src/docs/asciidoc/generated</sourceDirectory>
<!-- html Document output path -->
<outputDirectory>src/docs/asciidoc/html</outputDirectory>
<backend>html</backend>
<sourceHighlighter>coderay</sourceHighlighter>
<!-- html Document format parameters -->
<attributes>
<doctype>book</doctype>
<toc>left</toc>
<toclevels>3</toclevels>
<numbered></numbered>
<hardbreaks></hardbreaks>
<sectlinks></sectlinks>
<sectanchors></sectanchors>
</attributes>
</configuration>
</plugin>
|
asciidoctor-maven-plugin The plug-in also has many poses , See :GitHub - asciidoctor/asciidoctor-maven-plugin: A Maven plugin that uses Asciidoctor via JRuby to process AsciiDoc source files within the project.
The generated file is in src/docs/asciidoc/html ( Look at the configuration of your plug-in ), Then you can get a NGINX Deployed .
Use
- Start the application
- perform
mvn swagger2markup:convertSwagger2markupGenerate ASCIIDOC - perform
mvn asciidoctor:process-asciidocGenerate html
边栏推荐
- 现货白银的一般操作方法
- Questions about database: (5) query the barcode, location and reader number of each book in the inventory table
- [机缘参悟-39]:鬼谷子-第五飞箝篇 - 警示之二:赞美的六种类型,谨防享受赞美快感如同鱼儿享受诱饵。
- Paging of a scratch (page turning processing)
- SPIR-V初窺
- 直播系统代码,自定义软键盘样式:字母、数字、标点三种切换
- ADS-NPU芯片架构设计的五大挑战
- VMware Tools installation error: unable to automatically install vsock driver
- golang mqtt/stomp/nats/amqp
- [pat (basic level) practice] - [simple mathematics] 1062 simplest fraction
猜你喜欢

Recoverable fuse characteristic test

基於DVWA的文件上傳漏洞測試

Basic process and testing idea of interface automation

Mlsys 2020 | fedprox: Federation optimization of heterogeneous networks

The inconsistency between the versions of dynamic library and static library will lead to bugs

Unity | two ways to realize facial drive

Questions about database: (5) query the barcode, location and reader number of each book in the inventory table

Docker compose configures MySQL and realizes remote connection

3D model format summary

A Cooperative Approach to Particle Swarm Optimization
随机推荐
【详细】快速实现对象映射的几种方式
Hcip---ipv6 experiment
Code Review关注点
Remember that a version of @nestjs/typeorm^8.1.4 cannot be obtained Env option problem
IP storage and query in MySQL
黄金价格走势k线图如何看?
SPIR-V初窺
有谁知道 达梦数据库表的列的数据类型 精度怎么修改呀
servlet(1)
Ordinary people end up in Global trade, and a new round of structural opportunities emerge
Huawei Hrbrid interface and VLAN division based on IP
Finding the nearest common ancestor of binary tree by recursion
The inconsistency between the versions of dynamic library and static library will lead to bugs
Distributed base theory
PHP error what is an error?
Who knows how to modify the data type accuracy of the columns in the database table of Damon
Use of crawler manual 02 requests
Leetcode1961. Check whether the string is an array prefix
Leetcode 剑指 Offer 59 - II. 队列的最大值
[pat (basic level) practice] - [simple mathematics] 1062 simplest fraction