您现在的位置是:主页 > news > 怎么做网站自动响应/青岛seo外包服务

怎么做网站自动响应/青岛seo外包服务

admin2025/4/29 14:17:51news

简介怎么做网站自动响应,青岛seo外包服务,做网站什么域名好,如何自己做公司网页最近经常被问 ITMuch API 文档页是怎么制作的,考虑到步骤略复杂,写篇手记总结下吧。 TIPS ITMuch API 是个人在慕课网视频《 面向未来微服务:Spring Cloud Alibaba从入门到进阶 》的实战项目配套文档。 效果 总体步骤 整合Swagger,生成Swagg…

怎么做网站自动响应,青岛seo外包服务,做网站什么域名好,如何自己做公司网页最近经常被问 ITMuch API 文档页是怎么制作的,考虑到步骤略复杂,写篇手记总结下吧。 TIPS ITMuch API 是个人在慕课网视频《 面向未来微服务:Spring Cloud Alibaba从入门到进阶 》的实战项目配套文档。 效果 总体步骤 整合Swagger,生成Swagg…

最近经常被问 ITMuch API 文档页是怎么制作的,考虑到步骤略复杂,写篇手记总结下吧。

TIPS

ITMuch API 是个人在慕课网视频《 面向未来微服务:Spring Cloud Alibaba从入门到进阶 》的实战项目配套文档。

效果

总体步骤

  • 整合Swagger,生成Swagger描述端点 /v2/api-docs
  • 使用 swagger2markup-maven-plugin ,将 /v2/api-docs 生成ASCIIDOC文件;
  • 使用 asciidoctor-maven-plugin ,将ASCIIDOC文件转换成HTML;
  • 部署

整合Swagger

TIPS

Swagger的使用非常简单,本文不展开探讨了,各位看官自行百度一下用法吧。

常用注解:

  • @Api
  • @ApiOperation
  • @ApiModel
  • @ApiModelProperty
  • 加依赖

    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 -->
    <!-- 之所以要排除,是因为如果不排除会报NumberFormatException的警告。 -->
    <!-- 参考: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>
    
  • 配置Swagger(按照自己的需要配置,下面的配置代码仅供参考)

    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 信息** @return 页面信息*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title("ITMuch API").description("ITMuch API").termsOfServiceUrl("").version("1.0.0").contact(new Contact("", "", "")).build();}@Beanpublic Docket customImplementation() {return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.basePackage("com.itmuch")).paths(PathSelectors.any()).build().apiInfo(this.apiInfo());//.globalOperationParameters(parameters);}
    }
    
  • 为接口Swagger注解

    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 = "公告相关接口", description = "公告相关接口")
    public class NoticeController {/*** 查询最新的一条公告** @return 公告列表*/@GetMapping("/newest")@ApiOperation(value = "查询最新的一条公告", notes = "用于:公告")public Notice findNewest() {return new Notice();}
    }@AllArgsConstructor
    @NoArgsConstructor
    @Builder
    @Data
    @ApiModel("公告")
    public class Notice {/*** ID*/@ApiModelProperty("id")private Integer id;/*** 公告内容*/@ApiModelProperty("公告内容")private String content;...
    }
    
  • 这样,应用启动完成后,就会有一个 /v2/api-docs 端点,描述了你的API的信息。

生成ASCIIDOC

在pom.xml中添加如下内容:

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访问url --><swaggerInput>http://localhost:8080/v2/api-docs</swaggerInput><!-- 生成为单个文档,输出路径 --><outputFile>src/docs/asciidoc/generated/all</outputFile><config><!-- ascii格式文档 --><swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage><swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy></config></configuration></plugin>...

swagger2markup-maven-plugin 插件的作用是读取 http://localhost:8080/v2/api-docs 的信息,生成ASCIIDOC文档。当然你也可以生成其他格式,比如Markdown等等。

这款插件还有很多使用姿势,详见 GitHub - Swagger2Markup/swagger2markup-maven-plugin: A Swagger2Markup Maven Plugin

生成HTML

下面,只需要将ASCIIDOC转换成html就OK了,在pom.xml中添加如下内容:

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文档输入路径 --><sourceDirectory>src/docs/asciidoc/generated</sourceDirectory><!-- html文档输出路径 --><outputDirectory>src/docs/asciidoc/html</outputDirectory><backend>html</backend><sourceHighlighter>coderay</sourceHighlighter><!-- html文档格式参数 --><attributes><doctype>book</doctype><toc>left</toc><toclevels>3</toclevels><numbered></numbered><hardbreaks></hardbreaks><sectlinks></sectlinks><sectanchors></sectanchors></attributes></configuration></plugin>

asciidoctor-maven-plugin 插件同样也有很多姿势,详见:GitHub - asciidoctor/asciidoctor-maven-plugin: A Maven plugin that uses Asciidoctor via JRuby to process AsciiDoc source files within the project.

生成的文件在 src/docs/asciidoc/html (看你插件上面的配置哈),然后你就可以弄个NGINX部署了。

使用

  • 启动应用
  • 执行 mvn swagger2markup:convertSwagger2markup 生成ASCIIDOC
  • 执行 mvn asciidoctor:process-asciidoc 生成html