1. Introdução
O objetivo de Swagger é definir uma interface padrão independente de linguagem para a API REST, permitindo que os usuários descubram e compreendam a funcionalidade dos serviços de computador sem acessar o código-fonte. Quando definido corretamente pelo Swagger, os usuários podem entender e interagir com serviços remotos com uma quantidade mínima de lógica de implementação. Semelhante à interface feita por programação de baixo nível.
2. Etapas de implementação
1. Adicione dependências do Maven
<Depencency> <voupid> io.springfox </frugiD> <ArtifactId> springfox-swagger2 </artifactId> <versão> 2.6.1 </sipers> </dependency>
2. Classe de configuração de swagger
@Configuration @EnableSwagger2 // @componentsCan (bashEpackAgECLASSes = jgbjbaseInfocompanyapi.class) ou @componentsCan (BasEpackages = "com.summersoft.ts.schedule.supervision.Controller swaggerspringmvcplugin () {return new Docket (documentationType.swagger_2) .apiinfo (apiinfo ()) .select () // selecionando quais caminhos e API gerarão todos os recursos (PathSelsettores (PathSlettores () //) //s) () //)////) //) //) //)///) //)////)////)///) //)///) //)///) //)///) //s) } /** * Informações específicas da API * * @RETURN * /APIINFO APIINFO APIINFO () {APIINFO APIINFO = new Apiinfo ("Plataforma de serviço de Dooring Api Document, // título" ", // Descrição" 1.0 ", // release", "", "" "", "", // "", "", // descrição "1.0", // release "," "," "" "," ",", // "", "", // descrição "1.0", // release "," "," "" "," ",", // "" ", //;3. Notas de arrogância
Swagger digitalizará o arquivo de classe com anotação Swagger sob o caminho do pacote configurado no SwaggerConfig e, finalmente, gerará uma série de arquivos JSON digitalizados ...
Anotação de Swagger Descrição: https://github.com/swagger-api/swagger-core/wiki/annotações
@API: usado em uma classe para ilustrar a função da classe. Deve -se notar que o valor usado nas versões mais antigas representa o nome da classe gerado pela digitalização. Após 1.5, a tag deve ser usada para representar o nome da classe.
@Api (tag = "userController", description = "API relacionada ao usuário")
@Apioperation: usado em métodos para ilustrar a função dos métodos
@Apioperation (value = "encontre usuário", notas = "encontre usuário", httpmethod = "get", produz =
Mediatype.application_json_utf8_value)
@Apiparam: usado na lista de parâmetros para indicar o significado do parâmetro
@Apiparam (value = "Crie ou atualize a hora atual (mês)")
@Apiimplicticparams: usado para incluir um conjunto de descrições de parâmetros no método
@ApiimplicticParam: usado na anotação @apiimplicticparams, especificando vários aspectos de um parâmetro de solicitação
Paramtype: onde colocar o parâmetro
Cabeçalho> Aquisição de parâmetros de solicitação: @RequestHeader
Consulta> Aquisição de parâmetros de solicitação: @requestparam
Caminho (para interface RESTful)> Obtenção dos parâmetros de solicitação: @PathVariable
corpo (não comumente usado)
formulário (não comumente usado)
Nome: Nome do parâmetro
Datatype: Tipo de parâmetro
Necessário: se o parâmetro deve ser passado
Valor: o significado do parâmetro
DefaultValue: o valor padrão do parâmetro
@Apiimplicticparams ({
@ApiimplicticParam (name = "id", value = "ÍD exclusivo", requerir = true, datatype = "long", paramtype = "caminho"),
})
@Apiresponses: usado para representar um conjunto de respostas
@Apiresponse: Usado em @apiresponses, geralmente é usado para expressar uma informação de resposta a erros
Código: Número, por exemplo 400
Mensagem: Informações, como "Parâmetros de solicitação não preenchidos"
Resposta: classe que lança exceção
@Apiresponses (value = {
@Apiresponse (código = 400, message = "nenhum nome fornecido")
})
@Apimodel: descreve as informações de um modelo (isso geralmente é usado ao criar uma postagem, usando cenários @requestbody, e os parâmetros de solicitação não podem ser descritos usando a anotação @apiimplicticparam)
@Apimodel (value = "classe de entidade do usuário")
@Apimodelproperty: descreva as propriedades de um modelo
@Apimodelproperty (value = "user user")
3. Swagger-ui
Com as informações de configuração acima, o Swagger nos ajudará a digitalizar todas as informações de classe e gerar um arquivo JSON. Para tornar os arquivos JSON amigáveis para as pessoas, você precisa usar o componente Swagger-UI:
1. Instruções Swagger-UI: https://swagger.io/docs/swagger-tools/
2. Download Swagger-UI, crie um novo diretório de swagger no diretório WebApp, coloque os arquivos no diretório Dist no diretório Swagger e modifique o arquivo index.html. Por padrão, você precisa obter o JSON da API da conexão http://petstore.swagger.io/v2/swagger.json. Aqui você precisa modificar o valor da URL para http: // {ip}: {porta}/{projectName}/api-docs, e os valores em {} são preenchidos de acordo com sua própria situação.
Por exemplo, meu valor de URL é:
http: // localhost: 8080/vouchers/api-docs. Além disso, você precisa configurar a liberação de recursos do mvc da primavera: <MVC: Recursos Mapping = "/swagger/**" location = "/swagger/"/>
Dicas: não há muitos arquivos no diretório Dist padrão. Swagger-UI pode ser personalizado. Isso é usado em nosso projeto. Não há necessidade de alterar o nome do projeto. O nome do projeto é obtido dinamicamente: https://files.cnblogs.com/files/jmcui/swagger.zip
3. Como classificar as interfaces exibidas:
Apissorter: aplique classificação na lista de API/tags. Pode ser 'alfa' (classificado por nome) ou uma função (consulte Array.prototype.sort () de como as funções de classificação funcionam). O padrão é que o pedido retornado pelo servidor permanece inalterado.
OperationsSorter: aplique uma espécie na lista de operações para cada API. Pode ser 'alfa' (classificado por alfanumérico), 'método' (classificado pelo método http) ou função (consulte Array.prototype.sort () saber como as funções de classificação funcionam). O padrão é que o pedido retornado pelo servidor permanece inalterado.
O tutorial acima (compartilhe) para configurar o plug-in swagger no springmvc é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.