【Java】Swagger2 結合spring boot 請求接口自動生成文檔


官方地址:https://swagger.io/
功能主要有 1、提供后台訪問地址,可對接口測試 2、生成各種離線文檔 3、結合mock導入

swagger-ui

1、 maven依賴

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
           

2、配置類

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    
    @Bean
    public Docket api(){
        return  new Docket(DocumentationType.SWAGGER_2).select()
                // 接口包掃描,也可配置全項目掃描
                .apis(RequestHandlerSelectors.basePackage("com.xxxxx"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

    // API自定義描述信息
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("xxx Project APIs")
                .description("xxxxxx 接口")
                .termsOfServiceUrl("http:xxxxxx")
                .version("1.0")
                .build();
    }

}

3、訪問路徑
可在此路徑下進行接口查看,測試

http://ip:port/swagger-ui.html

離線文檔生成

以生成Markdown格式文檔 為例

前提swagger-ui 的訪問路徑是開啟的,可訪問 http://ip:port/v2/api-docs 返回的是接口描述的json

1、maven 依賴

<dependency>
            <groupId>io.github.swagger2markup</groupId>
            <artifactId>swagger2markup</artifactId>
            <version>1.3.1</version>
        </dependency>
<dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.3</version>
        </dependency>

2、java 代碼實現生成

import io.github.swagger2markup.GroupBy;
import io.github.swagger2markup.Language;
import io.github.swagger2markup.Swagger2MarkupConfig;
import io.github.swagger2markup.Swagger2MarkupConverter;
import io.github.swagger2markup.builder.Swagger2MarkupConfigBuilder;
import io.github.swagger2markup.markup.builder.MarkupLanguage;
import org.junit.Test;

import java.net.URL;
import java.nio.file.Paths;

public class SwaggerCreateDocTest {


    @Test
    public void generateMarkdownDocs() 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:9999/v2/api-docs"))
                .withConfig(config)
                .build()
                .toFolder(Paths.get("C:\\Users\\wb-ndz525238\\Desktop"));
    }

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM