美文网首页
SpringBoot整合Swagger2

SpringBoot整合Swagger2

作者: 97_灰太狼 | 来源:发表于2020-02-17 14:45 被阅读0次

    SpringBoot整合Swagger2的好处就是接口文档方便进行维护

    1.加入依赖包,pom.xml:

     <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.9.2</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.9.2</version>
            </dependency>
    

    2.增加个配置类:

    package com.cxh.springboot_elasticsearch.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .pathMapping("/")
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.cxh.springboot_elasticsearch.controller"))//扫描接口的包
                    .paths(PathSelectors.any())
                    .build().apiInfo(new ApiInfoBuilder()
                            .title("SpringBoot整合Swagger")
                            .description("SpringBoot整合Swagger,详细信息......")
                            .version("9.0")
                            .build());
        }
    }
    
    

    通过@EnableSwagger2注解启用Swagger2,然后配置一个Docket Bean,这个Bean中,配置映射路径和要扫描的接口的位置,在apiInfo中,主要配置一下Swagger2文档网站的信息,例如网站的title,网站的描述,联系人的信息,使用的协议等等,这样Swagger2就配置成功了。

    3.在需要的类,方法上加上Swagger2的注解进行说明:

    import com.cxh.springboot_elasticsearch.entity.Book;
    import com.cxh.springboot_elasticsearch.service.BookService;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiImplicitParam;
    import io.swagger.annotations.ApiOperation;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.domain.Page;
    import org.springframework.data.domain.PageRequest;
    import org.springframework.data.domain.Sort;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    import java.util.Optional;
    
    @RestController
    @Api(tags = "es操作管理接口")
    public class ElasticController {
    
        @Autowired
        private BookService bookService;
    
        @RequestMapping("/book/{id}")
        @ApiOperation("查询书的接口")
        @ApiImplicitParam(name = "id", value = "书本id", required = true)
        public Book getBookById(@PathVariable String id){
            Optional<Book> opt =bookService.findById(id);
            Book book=opt.get();
            System.out.println(book);
            return book;
        }
    }
    
    

    @Api注解可以用来标记当前Controller的功能。
    @ApiOperation注解用来标记一个方法的作用。
    @ApiImplicitParam注解用来描述一个参数,可以配置参数的中文含义,也可以给参数设置默认值,这样在接口测试的时候可以避免手动输入。
    如果有多个参数,则需要使用多个@ApiImplicitParam注解来描述,多个@ApiImplicitParam注解需要放在一个@ApiImplicitParams注解中。
    具体的可以看Swagger2的api。

    1. 启动项目:浏览器打开地址:http://localhost:8080/swagger-ui.html
    image.png

    个人座右铭:主动 行动 思考 反省 总结

    相关文章

      网友评论

          本文标题:SpringBoot整合Swagger2

          本文链接:https://www.haomeiwen.com/subject/ummbfhtx.html