O Swagger é um documento de interface de interface repousante + software de função de teste funcional. Este artigo apresenta brevemente os métodos e alguns problemas comuns para integrar o Swagger em seu projeto. Se você deseja analisar o código -fonte do projeto em profundidade e aprender mais, consulte os materiais de referência.
A Swagger é uma estrutura padronizada e completa para gerar, descrever, chamar e visualizar serviços da Web de estilo repouso. O objetivo geral é fazer a atualização do cliente e do sistema de arquivos na mesma velocidade que o servidor. Métodos de arquivo, parâmetros e modelos são fortemente integrados ao código do lado do servidor, permitindo que a API sempre se mantenha sincronizada. A Swagger nunca foi tão fácil de implantar e gerenciar e usar APIs poderosas.
Para os alunos que movem tijolos, escrever interfaces é fácil, escrever documentos da interface é muito irritante. Se a interface mudar, manter os documentos da interface é ainda mais irritante, para que você possa descobrir que o documento não corresponde ao programa.
Depois de um tempo, até os desenvolvedores estavam confusos
Swagger2 resolve rápida e convenientemente os problemas acima. Um novo favorito que pode organizar a poderosa documentação da API RESTful com programas de MVC da primavera.
O código a seguir é adicionado diretamente
pom.xml
<? xml versão = "1.0" coding = "utf-8"?> <Projeto xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.ww3.org/2001/xmlschaMance xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zhongxin.wealth</groupId> <TRAFACTID> WealthWeb </starfactId> <versão> 0.0.1-snapshot </siers> <batyaging> jar </acheging> <name> wealthweb </name> <cription> Projeto Demo para Spring Boot </cription> <sterfact> <voundId> org.springBROTWROT.BOOT </GruntId> <Torfactid> <Dorfact> <voundId> org.springBROTBROTWORT.BOOT </GruntId> <Torfactid> <RortIft> <vword> SpringF SpringFROTFROTBROTBROT.BOOT </Grupo <brugid> <Versão> 1.5.9.release </sipers> <RelityPath/> <!-Lookup Parent from Repository-> </parent> <Perts> <Project.build.sourceEncoding> utf-8 </project.build.sourceEncoding> <Projectoring.outputoding> utf-8 <rortcenching> <Java.version> 1.8 </java.version> </sperties> <pendes>> <pendence> <puperid> org.springframework.boot </foupid> <sutifactId> spring-boot-starter-web </ArtifactId> </dependência> <PringIdId> Org.sringfringfringfringfringfringfringfringfringfringfringfringFringFringFringFringFringFringFringFringFringFringFring.SPRINGFROTNEBROTFRINGFRINGFROTFLOTF> </dependência> <purpanOt> Org.sringfring.spring </dependency> </dependency> </dependency> </dependency> </dependência <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <TarfactId> springfox-swagger-ui </artifactId> <versão> 2.7.0 </versão> </dependency> </dependências> </projection>
Crie uma classe de configuração
pacote com.zhongxin.wealth.apiconfig; importar org.springframework.context.annotation.bean; importação org.springframework.context.annotation.configuration; importação springfox.documentation.builders.apiinfobuilder; springfox.documentation.builders.requestHerlerSelectors; importar springfox.documentation.service.apiinfo; importar springfox.documentation.spi.documentationTyType; importação springfox.documentation.spring.web.plugins.docket; por Dingys em 2017/12/8. */@Configuration@EnableSwagger2Public Classe Swagger2 {@Bean public Docket CreaterRestapi () {Retorne new Docket (documentationType.swagger_2) .apiinfo (apiinfo). .Paths (PathSelectors.any ())) .build (); } private apiinfo apiinfo () {return New Apiinfobuilder () .title ("Langfang empréstimo público Big Data Statistics Results Interface") .version ("1.0") .build (); }}Escreva controlador
pacote com.zhongxin.wealth.web; importar io.swagger.annotações.apioperation; importar org.springframework.web.bind.annotation.requestmapping; importar org.springframework.web.bind.annotation.requestMethod; importar; org.springframework.web.bind.annotation.restcontroller;/*** Criado por Dingys em 2017/12/7. */ @RestController @requestmapping ("/hello") classe pública hellowordcontroller {@apioperation (value = "interface de teste", notas = "Esta é apenas uma interface para testar a chamada do controlador, sem qualquer lógica de negócios") @ReQuestMapping (value = {"/test"}, métod = (requestmeth)) }}O código é concluído e o efeito está pronto
Clique em experimentar!
É muito detalhado, muito sofisticado?
NOTA: A versão Swagger2.2.2 que você acabou de usar durante o processo de integração terá um lembrete de erro na página inicial.
{"schemavalidationmessages": [{"nível": "erro", "mensagem": "não é possível ler no arquivo http://127.0.0.1:8888/v2/api-docs"}]}No entanto, o acesso do navegador: http://127.0.0.1:8888/v2/api-docs pode obter os resultados novamente
{"swagger": "2.0", "info": {"versão": "1.0", "title": "Langfang Commission-Loan Big Data Statistics Results Output Interface "," Contact ": {}," License ": {}}," host ":" 127.0.0.1:8888","basepath":"/","tags":["name":"hello-word-controller",7 Controlador "}]," caminhos ": {"/hello/teste ": {" get ": {" tags ": [" hello-word-controller "]," resumo ":" interface de teste "," descrição ":" é apenas uma interface para testar a chamada do controlador, sem lógica comercial "," Operação ":" Testhellingget " ody/json "]," Produce ": ["/"]," Respostas ": {" 200 ": {" description ":" ok "," schema ": {" type ":" string "}}," 401 ": {" describl ":" unauthorized "}," 403 ": {" descrição ":": "para": "para" não Encontrado"}}}}}}}O motivo específico é desconhecido e não apareceu após a versão 2.7.0.
Resumir
O exposto acima é o código de exemplo de Springboot Integrated Swagger apresentado a você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!