Prefácio
Swagger, o significado chinês de "engolir". É uma estrutura de API poderosa, sua integração é muito simples, não apenas fornece uma revisão de documentação on -line,
Além disso, a documentação online é fornecida. Além disso, o Swagger é fácil de construir APIs de estilo repouso.
A Swagger é um conjunto de ferramentas de código aberto criadas em torno da especificação OpenAPI para ajudar a projetar, criar, documentar e usar as APIs REST.
Simplificando, parece facilitar o teste da interface RESTful em segundo plano e implementar atualizações dinâmicas quando estamos na interface em segundo plano.
Após a modificação, o Swagger pode atualizar automaticamente sem a necessidade de manter essa interface para testar como você pensa.
Swagger indica através da anotação que a interface gerará um documento, incluindo nome da interface, método de solicitação, parâmetros, informações de retorno etc.
<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>
Através da anotação @Configuration, indica que é uma classe de configuração e @EnableSwagger2 Ativa Swagger2.
Configuração APIINFO () Algumas informações básicas. APIS () especifica que o pacote digitalizado gerará um documento.
Depois de criar o feijão através da função Createrstapi, o APIINFO () usa as informações básicas da API (essas informações básicas serão exibidas na página do documento). A função select () retorna uma instância do ApisElectorBuilder para controlar quais interfaces estão expostas ao Swagger para exibição. Este exemplo usa o caminho de pacote digitalizado especificado para definir. A Swagger digitalizará todas as APIs definidas pelo controlador no pacote e gerarão o conteúdo do documento (exceto a solicitação especificada por @apiignore).
pacote com.lance.learn.springbootswagger.configuration; importar org.springframework.context.annotation.bean; importação org.springframework.context.annotation.configuration; importação springfox.documentation.builders.apiinfobilder; importação; springfox.documentation.builders.requestHandlerSelectors; importar springfox.documentation.service.apiinfo; importar springfox.documentation.service.contact; importação springfox.documentation.spi.documentsationpe; springfox.documentation.swagger2.annotations.EnableSwagger2;/** * @author lance(ZYH) * @function Swagger startup configuration class* @date 2018-07-09 21:24 */@Configuration@EnableSwagger2public class SwaggerConfiguration { /** * swagger2 configuration file, you can configure some basic contents of swagger2, such as Pacotes digitalizados, etc. * @return */@Bean Public Docket Createrestfulpi () {Return New Docket (documentationType.swagger_2) .PathMapping ("/") .Select () .Apis (PacorToTBAGGERSWAGGERS.COTSWAGROTROTROTROTROTROTROTROTROTROTROTROTROTROTROTROTROTROTROTROTROTROTS.CONTROTROTROTROTROTROTROTROTROTS.CONTROTROTROTROTROTROTROTROTS.CONTSTER.CONTROLTER "). endereço.Paths (PathSelectors.any ()) .build (); } /** * Construa a função de informação detalhada do documento da API, observe qual anotação se refere a * @return * /private apiinfo apiinfo () {retorna new apiinfobuilder () // Page Title.title ("Teste de inicialização para construir API Restful usando swagger2") //create.contle contact (LANOB RESTFUNOT2 ") //create.title (LAVATLENC (" Spring Boot Teste para construir a API Restful usando Swagger2 ") "http://www.cnblogs.com/zhangyinhua/", "[email protected]")) // Número da versão.version ("1.0") // Descrição ("API Descrição") .build (); }} As descrições vêm principalmente de funções de nomeação, etc., e não são fáceis de usar. Normalmente, precisamos adicionar algumas instruções para enriquecer o conteúdo do documento.
Como mostrado abaixo, adicionamos instruções à API por meio da anotação @apioperation e usamos @apiimplicitparams e @apiimplicticparam
Anotação para adicionar descrição aos parâmetros.
1) Exemplo 1
pacote com.lance.learn.springbootswagger.controller; importar com.lance.learn.springbootswagger.bean.book; importar io.swagger.annotações.apiimplicticparam; import io.swagger.annoTations.apiimplicitams; import ioo.swagger.anTações.swagger.annotações.Apiimplicitams; importar io.swagger.anTações.Notations.swagger.annotações io.swagger.annotações.apioperation; importar org.springframework.web.bind.annotation. *; importar springfox.documentation.annotações.apiignore; importar java.util. *; "/bookcurd") classe pública bookcontroller {map <long, book> books = collection.synchronizedmap (novo hashmap <long, book> ()); @Apioperation (Value = "Get List List", Notes = "Obtenha Lista de Livros") @RequestMapping (Value = {""}, Method = requestMethod.get) Lista public <BOOT> GetBook () {List <Book> book = new ArrayList <> (books.values ()); livro de retorno; } @Apioperation (value = "Criar um livro", notas = "Criar um livro") @apiimplicitParam (name = "book", value = "entidade detalhada do livro", requerir = true, datatype = "book") @requestMapping (value = ",", método = requestMod.post) public string (@requestbody book) @Terquestbody (); retornar "sucesso"; } @Apioperation (value = "Obtenha informações detalhadas no livro", NOTS = "Obtenha informações detalhadas com base no ID do URL") @apiimplicitParam (name = "id", value = "id", requerido = true, datatype = "long", paramtype = "path") @ReModMapping (value = "/{{) id) {return books.get (id); } @Apioperation (value = "Atualizar informações", Notes = "Especifique as informações do livro de atualização com base no ID do URL") @apiimplicitParams ({@apiimplicticParam (name = "id", value = "ID do livro", requerido = true, datatype = "long", "paramtype", "Path ="), @APImplicParam = True, " datatype = "book")}) @RequestMapping (value = "/{id}", método = requestmethod.put) public string putuser (@pathvariable long id, @requestbody book) {book book1 = books.get (id); book1.setName (book.getName ()); book1.setPrice (book.getprice ()); books.put (ID, livro1); retornar "sucesso"; } @Apioperation (value = "Excluir livro", Notes = "Especifique a exclusão de livros com base no ID do URL") @apiimplicicParam (name = "id", value = "ID do livro", requerido = true, datatype = "long", paramtype = "Path) @ResquestMapping (value ="/{{{} DeleteUser (@PathVariable Long Id) {books.remove (id); retornar "sucesso"; } @Apiignore // use esta anotação para ignorar esta API @RequestMapping (value = "/hi", método = requestMethod.get) public String jSontest () {return "oi você!"; }}2) Exemplo 2
package com.lance.learn.springbootswagger.controller; importar com.lance.learn.springbootswagger.bean.user; importar io.swagger.annotações.apiimplicitParam; import io.swagger.annoTations.apiimplicticParams; importar io.swagger.annotações.anTações.swagger.annotações.ApiImplicticParams; ImportParam; io.swagger.annotações.apioperation; importar org.springframework.web.bind.annotation. *; importar java.util. Mapa <long, usuário> usuários = coleções.synchronizedmap (new hashmap <long, user> ()); @Apioperation (value = "obtenha a lista de usuários", notas = "") @RequestMapping (value = {""}, método = requestmethod.get) list <suser> getUserList () {list <user> r = new ArrayList <suser> (users.values ()); retornar r; } @Apioperation (value = "Criar usuário", notas = "Criar usuário do objeto do usuário") @apiimplicitParam (name = "user", value = "Usuário detalhado de entidade Usuário", requerir = true, datatype = "user") @requestMapping (value = ", métod = requestmethod.Post) (PostUSer (@requestMapping (", ", Method = requestMod.Post) (Public String String (@RequestMap retornar "sucesso"; } @Apioperation (value = "Obtenha detalhes do usuário", Notes = "Obtenha detalhes do usuário com base no ID do url") @apiimplicitParam (name = "id", value = "ID do usuário", requerido = true, datatype = "long") @ReQuestMapping (value = "/{id}", método = requestmethod.get ") @RequestMapping (valor"/{id} ", método = requestmethod.get)) } @ApiOperation(value="Update user details", notes="Specify update objects based on the id of the url, and update user details based on the transmitted user information") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "User ID", required = true, dataType = "Long"), @ApiImplicitParam(name = "user", value = "User detailed entity Usuário ", requerir = true, datatype =" user ")}) @RequestMapping (value ="/{id} ", método = requestMethod.put) public string putuser (@PathVariable Long ID, usuário do usuário @RequestBody) {user u = new User (); users.put (id, u); retornar "sucesso"; } @Apioperation (value = "Excluir usuário", notas = "Especifique o objeto Excluir de acordo com o ID do URL") @apiimplicitParam (name = "id", value = "ID do usuário", requerido = true, datatype = "long") @ReQuestMapping (value "/{id}", método = request ". users.remove (id); retornar "sucesso"; }}https://github.com/lancetobigdata/springbootlearning/tree/devell/springboot-swagger
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.