A, Swgger Introdução
1. site oficial
https://swagger.io/
2. Introdução
Swagger é uma estrutura padronizada e completa para a geração, a descrição e visualização de chamadas para os serviços de RESTful Web.
O objetivo da Swagger é definir uma API REST padrão e interface independente de linguagem, as pessoas podem ter um computador e necessidade de código-fonte de acesso, documentos, ou tráfego de rede de monitoramento pode descobrir e entender as capacidades de serviço. Quando adequadamente definido por Swagger, o usuário pode entender e usar o serviço remoto e serviço remoto lógica de implementação interação mínima. E para as interfaces de programação subjacentes implementado semelhante, Swagger pode ter eliminado o serviço de chamada de adivinhação.
vantagens 3.Swagger
apoiar a geração automática de documentação sincronização API podem ser gerados automaticamente após o uso Swagger diretamente através do código e arquivo de configuração simples, eliminando a necessidade de manualmente escrever documentação interface para programadores, você pode economizar tempo para escrever o documento para aprender novas habilidades
fornecer páginas web API teste on-line, você não pode exigir carteiro e outras ferramentas para testes de interface, em linha testando parâmetros e formato são determinados amigos de interfaces, os parâmetros ajustados diretamente na interface web podem ser testadas.
Dois, springBoot integrado Swagger
1. Crie um novo springBoot, apresentou suas dependências
<! - https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -> <dependency> <groupId> io.springfox </ groupId> <artifactId> springfox-swagger2 </ artifactId> <versão> 2.9.2 </ version> </ dependency> <! - https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -> <dependency> <groupId> io.springfox </ groupId> <artifactId> springfox-bravata-ui </ artifactId> <versão> 2.9.2 </ version> </ dependency>
2. Criar um novo controle HelloController interface de classe, e criar uma nova classe de configuração Swagger
Uma vez que esta classe está configurado classe, para adicionar uma anotação @ configuração, Swgger Notes @ EnableSwagger2 indicar na arrogância, você pode fazer tão simples de usar Swagger, mas todas as configurações de executar a opção padrão
Na raiz do navegador mais /swagger-ui.html, você pode acessar a documentação da API do lado web
Esta imagem mostra toda a configuração padrão, você pode ver a página é dividida em quatro partes, o básico-error-controlador seção interface de transportadora é built-in, como o acesso a 404 páginas ou outro padrão ir por esse caminho, Olá-controlador para nós o novo controlador, é claro, queremos ser configurado como arrogância necessária e ambos os lados precisam deixá-lo ter uma ferramenta simples para gerar api
@Configuration @ EnableSwagger2 classe pública Swagger2Config { @Bean pública Docket Docket No. () { return new new Docket No. (DocumentationType.SWAGGER_2) .apiInfo (apiInfo ()) .Select () // RequestHandlerSelectors interface de configuração modo para digitalizar // basePackage indica a varredura especificado pacotes .apis (RequestHandlerSelectors.basePackage ( "com.example.demo03.controller")) // caminhos indicaram a necessidade de obter filtro caminho .paths (PathSelectors.any ()) .build (); } // apiInfo para a configuração do Swagger informações apiInfo privada apiInfo apiInfo () { Contato Contato = new Contact ( "liufuqiang", "https://cnblogs.com/LiuFqiang", "[email protected]"); retornar nova ApiInfo ( "门诊用药分析系统后台RESTful API文档", "autor: liufuqiang", "v1.0", "https://cnblogs.com/LiuFqiang", contato, "Apache 2.0", "http: / /www.apache.org/licenses/LICENSE-2.0" , new ArrayList () ); } }
Aqui temos uma configuração simples, Docket como um exemplo de Swagger, ao olhar para o código-fonte subjacente, podemos ver que existem algumas propriedades Docket
E nós queremos usar uma necessidade boa Swagger para configurar essas propriedades, como modificar a informação básica, onde a API, e especificar as necessidades de pacotes para ser superfície digitalizada
, A mudança de contexto terceiro
Enquanto estávamos no desenvolvimento normal, haverá ambientes de desenvolvimento e produção, se o ambiente está na linha serão expostos diretamente a este documento não pode ser bom, todos nós queremos ter que mudar consoante o ambiente de projeto correspondente para abrir Swagger
informações api inalterada, aumento de propriedade Ambiente para monitorar o ambiente do projeto, se o ambiente de desenvolvimento, set para abrir Swagger, se ambiente de compilação, desative Swagger, tais como onde vamos construir ambiente para permitir 3030, aparecerá a seguinte tela:
Em quarto lugar, os documentos são agrupados
Para o pacote de documentação da API, quando estávamos desenvolvimento da equipe, é melhor para cada documento individual serão agrupados de modo que os desenvolvedores de front-end,
Quando as pessoas desenvolvem, será automaticamente injetar várias instâncias Docket recipiente para a primavera,
Podemos ver no canto superior direito alguns mais espaço porque nós injetar os três exemplos correspondentes, otherâ e otherB Uma vez que não tem qualquer configuração, por isso não será o nosso primeiro passo para a página de configuração padrão
Quinto, comentários de código
Quando retornar dados no controlador, se houver dados envolvidos classe pojo, a classe desta entidade será exibido no modelo
@RestController HelloController classe pública { @Autowired privada HelloService HelloService; @GetMapping ( "/ getAllUser") público Student getAllUser () { return new Student (); } }
Aqui nós criamos uma nova classe de entidade Estudante, tem no método de classe HelloController retorna a classe de entidade
Quando as pessoas desenvolvem provavelmente a coisa mais dolorosa é para ver o código escrito por outra pessoa, pode haver algum campo nomeadas outras pessoas não entendem, todos os comentários no código que irá gerar a documentação
Claro, nós também podemos fazer parâmetros de notas, solicitação de nome de interface
Sexto, testes on-line
Clique em um método de experimentá-lo
Executar, em seguida, envia uma solicitação para executar o teste de interface de linha