SpringBoot 整合 Springfox-Swagger2

prefácio

Independentemente de integração Primavera de inicialização ou a integração Swagger SpringMVC são essencialmente similares, o foco recai configuração Swagger, suas mentiras essência da configuração.
@

1 informações, perfil Swagger

Antes e após o fim da era atual da Internet se tornou uma tendência separados, misturada com a parte dianteira e traseira, front-end ou volta-end não é possível "devido consultas, resolver o mais rápido possível", acabou levando perguntas focadas sobre o surto. A solução é o de interagir com a extremidade dianteira e traseira de uma relativamente independente e fracamente acoplados através do API. SwaggerAPI é um tal quadro, Swaggersuporta vários idiomas, tais como: Java, PHPe assim por diante, que afirma ser quadro API mais popular do mundo!

2º, questões integração que podem ser encontradas antes

1,
após a importação dependentes pacote jar bom, não pode encontrar o uso de tais notas dizem que, no caso, consulte: todos IntelliJ IDEA não é possível resolver Símbolo XXX resumo soluções de problemas

2,
versão, muitos versão SpringBoot, é uma versão integrada do quadro são muitos, provavelmente um pouco maior ou uma versão pouco menor pode aparecer uma variedade de erro, que é um problema comum de integração com outros frameworks, tem que prestar atenção para fora aqui. E se você executar algum bug, se o princípio SpringBoot subjacente pode não entendo muito bem aquilo que a Google Baidu, sugeriu que ele pode não encontrar outro versão SpringBoot !

Três, SpringBoot integrada Swagger

Nota: jdk 1.8 ou mais, a fim de executar swagger2

1,
introduzindo dois pacote frasco dependente

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger2</artifactId>
   <version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger-ui</artifactId>
   <version>2.9.2</version>
</dependency>

Duas,
de modo a utilizar elógio, deve escrever uma aula configurado configuração elógio, onde o configuração classe como se segue

@Configuration //说明这是一个配置类
@EnableSwagger2// 该注解开启Swagger2的自动配置
public class SwaggerConfig {  //随便的一个类名

}

3,
neste tempo é considerado uma integração preliminar estiver completo, iniciar o projeto pode ser acessado http://localhost:8080/swagger-ui.htmlpodem ver a bravata da interface, como se segue:
Aqui Insert Picture Descrição

Quatro, a configuração Swagger

integração se Primavera inicialização ou a integração Swagger SpringMVC são essencialmente similares, as mentiras foco na configuração elógio, sua essência é que a configuração, a qual é crítica. Chegamos a partir do gráfico abaixo para ver uma disposição foco Swagger mundial por quatro peças:
Aqui Insert Picture Descrição

4.1, Swagger o layout de quatro porções

Exemplo é Elógio bean Docket, que deve ser configurado Swaggger por exemplo Docket configuração.

A primeiro pacote parcela --API: se há nenhum pacote de configuração padrão é padrão. Exemplos de Swagger por Docket groupName()possível configurar grupos
Parte II - Descrição básica: Docket por exemplo Swagger apiInfo()dos parâmetros de configuração das informações do documento exemplo ApiInfo método
do terceiro parte - a lista interface de pedido: ao alcance do grupo, enquanto Swagger2 solicitações de verificação são combinados para aparecer aqui.
A Parte IV - Lista de entidades: o valor de retorno desde a entidade solicitante do Interface (mesmo genéricos) podem ser mapeadas para um item físico!

Parte IV Nota: não porque @ApiModel anotação permita entidades aparecem na lista Models, mas contanto que aparece no método de interface retorna ao valor da entidade estará em exposição aqui, e @ApiModel e @ApiModelProperty dois apenas notas para entidades adicionar comentários. Anotar o ex-class, atributos de classe adicionar comentários a este último.

4.2, a segunda parte: informação da API

Comece com o começo da segunda parte da análise análise de primeira parte desta compreensão mais útil.

@Configuration
@EnableSwagger2
@ComponentScan("com.yichun.swagger_boot_demo.controller")
public class SwaggerConfig {
    @Bean
    public Docket docker(){
        // 构造函数传入初始化规范,这是swagger2规范
        return new Docket(DocumentationType.SWAGGER_2)
                //apiInfo: 添加api详情信息,参数为ApiInfo类型的参数,这个参数包含了第二部分的所有信息比如标题、描述、版本之类的,开发中一般都会自定义这些信息
                .apiInfo(apiInfo())
                .groupName("yichun123")
                //配置是否启用Swagger,如果是false,在浏览器将无法访问,默认是true
                .enable(true) 
                .select()
                //apis: 添加过滤条件,
                .apis(RequestHandlerSelectors.basePackage("com.yichun.swagger_boot_demo.controller"))
                //paths: 这里是控制哪些路径的api会被显示出来,比如下方的参数就是除了/user以外的其它路径都会生成api文档
                .paths((String a) ->
                        !a.equals("/user"))
                .build();
    }

    private ApiInfo apiInfo(){
        Contact contact = new Contact("名字:name", "个人链接:http://xxx.xxx.com/", "邮箱:XXX");
        return new ApiInfo(
                      "标题内容", // 标题
                      "描述内容", // 描述
                      "版本内容:v1.0", // 版本
                      "链接:http://terms.service.url/", // 组织链接
                       contact, // 联系人信息
                      "许可:Apach 2.0 ", // 许可
                      "许可链接:XXX", // 许可连接
                      new ArrayList<>()// 扩展
        );
    }
}
Uma, análise de

Aqui Insert Picture Descrição

Duas, filtro RequestHandlerSelectors

RequestHandlerSelectors alimentar fonte pontual, como segue:
Aqui Insert Picture Descrição

4.3, a primeira porção: um pacote API configuração

De fato, o conteúdo da acima é um grupo completo API

1, configure um grupo
dissemos antes, se não houver nenhum pacote de configuração padrão é o padrão. Exemplos de Swagger por Docket groupName()pode configurar método de agrupamento, como segue:

@Bean
public Docket docket2(Environment environment) {
   return new Docket(DocumentationType.SWAGGER_2)
      .apiInfo(apiInfo()) // 配置基本API信息
      .groupName("hello") // 配置分组
       // 省略配置....
}

2, como configurar a pluralidade de pacotes de
é muito simples, precisa apenas configurar uma pluralidade de pacotes para uma súmula pluralidade, como segue:

@Bean
public Docket docket1(){
   return new Docket(DocumentationType.SWAGGER_2)
      .groupName("组一")
      // 省略配置....
}
@Bean
public Docket docket2(){
   return new Docket(DocumentationType.SWAGGER_2)
     .groupName("组二")
     // 省略配置....
}
@Bean
public Docket docket3(){
   return new Docket(DocumentationType.SWAGGER_2)
     .groupName("组三")
     // 省略配置....
}

4.4, Swagger2 comentário comum

A terceira e quarta seções falar antes, é muito necessário compreender a swagger2 notas comum, com anotações, você pode dar alguns dos mais difíceis para compreender as propriedades ou interfaces, adicione algumas informações de configuração torna mais fácil de ler! Este ponto também é swagger2 prioridade!

Primeiro, precisamos saber todas as notas que Swagger é definida io.swagger.annotationsno próximo pacote. Listada como aqui somente alguns notas comuns da seguinte forma:
Aqui Insert Picture Descrição
Se quiser saber mais cerca estas notas se referem notas explicativas swagger2

4.5 Parte III: lista de solicitação da API

solicitação Lista Interface: do grupo medida como Swagger2 combinado pedidos são digitalizados apareça aqui. Utilize anotações podem melhor melhorar a legibilidade.
Aqui Insert Picture Descrição

4.6, Parte IV: Lista API de entidades

Eu já disse, como desde que a entidade requerente o valor de retorno de interface (mesmo genérico), pode ser mapeada para um item físico! Sim, para que primeira etapa é ter um tipo físico.

1,
vamos apenas criar uma aula de entidade

@ApiModel("用户实体类")
public class User {
    
    @ApiModelProperty("性别")
    public String sex;

    @ApiModelProperty(value ="用户名",allowableValues = "11,12")
    public int name;  
}

Claro @ApiModelPropertynotas, há uma série de atributos, haverá muitos poços, preste atenção aqui, este artigo descreve temporariamente.

2,
enquanto a entidade solicitando o valor de retorno da interface (incluindo os genéricos), podem ser mapeados para os itens físicos, que escrever o código da seguinte forma:

 @GetMapping("/User2")
 public User getUser2(){
 
    return new User();
 }

Os resultados são os seguintes:
Aqui Insert Picture Descrição
Este artigo é bastante simples e óbvia, se não corrigir, críticas bem-vindos e grata!

Sejam bem-vindos a se concentrar em número pública, há alguns materiais de aprendizagem Java e uma grande onda de java e-books, como a máquina de Zhou Zhiming profundidade professor java virtual, ideias de programação java, o volume de tecnologia de núcleo, padrões de projeto para o oeste, java concorrente combate programação ... .. é uma Bíblia java, que não dizem carro rápido em Tomcat, ó vós que entrar! A principal coisa é explorar a tecnologia, tecnologia anseio, busca de tecnologia, disse bons potes Amigos está vindo Oh ...

Aqui Insert Picture Descrição
Referência: https://mp.weixin.qq.com/s/0-c0MAgtyOeKx6qzmdUG0w

Acho que você gosta

Origin www.cnblogs.com/yichunguo/p/12665857.html
Recomendado
Clasificación