栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot整合swagger

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot整合swagger

1、Swagger简介

        Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 官网: ( https://swagger.io/ ) 主要作用是:         1. 使得前后端分离开发更加方便,有利于团队协作         2. 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担         3. 功能测试                 Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫                 Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。

2、整合步骤

 项目整体架构如下:

        2.1  首先构建一个maven项目,添加依赖,我本项目只是一个子模块,所以相应的版本都是依赖于父版本的,看不到版本号,swagger使用的是2.9.2版本


        
            io.springfox
            springfox-swagger2
        
        
            io.springfox
            springfox-swagger-ui
        
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework
            spring-webmvc
        

        2.2 创建Swagger配置类SwaggerConfig

package com.swagger.config;

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
@ConditionalOnProperty(prefix = "swagger",value = {"enable"},havingValue = "true")
public class SwaggerConfig implements WebMvcConfigurer {

    @Bean
    public Docket buildDocket() {
        // 要扫描的API(Controller)基础包
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.swagger.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo buildApiInfo() {
        Contact contact = new Contact("开发者", "", "");
        return new ApiInfoBuilder()
                .title("测试‐应用API文档")
                .description("")
                .contact(contact)
                .version("1.0.0")
                .build();
    }

    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
                .addResourceHandler("/**")
                .addResourceLocations("classpath:/static/");
        registry
                .addResourceHandler("swagger‐ui.html")
                .addResourceLocations("classpath:/META‐INF/resources/");
        registry
                .addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META‐INF/resources/webjars/");
    }
}

               2.3 在Controller层创建SwaggerController类方便测试,并添加swagger相应注解

package com.swagger.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@Api(value = "测试平台 ",tags = "测试平台")
@RestController
public class SwaggerController {

    @ApiOperation("测试")
    @GetMapping(path = "/hello")
    public String hello(){
        return "hello";
    }

    @ApiOperation("测试2")
    @ApiImplicitParam(name = "name",value = "姓名",required = true,dataType = "string")
    @GetMapping("/hi")
    public String hi(String name){
        return "hi : "+name;
    }
}

常用Swagger注解如下:

@Api:修饰整个类,描述Controller的作用 @ApiOperation:描述一个类的一个方法,或者说一个接口

@ApiParam:单个参数的描述信息 @ApiModel:用对象来接收参数 @ApiModelProperty:用对象接收参数时,描述对象的一个字段 @ApiResponse:HTTP响应其中1个描述 @ApiResponses:HTTP响应整体描述 @ApiIgnore:使用该注解忽略这个API @ApiError :发生错误返回的信息 @ApiImplicitParam:一个请求参数 @ApiImplicitParams:多个请求参数的描述信息

  2.4 创建启动类SwaggerApplication 

package com.swagger;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@SpringBootApplication
@EnableSwagger2     //开启swagger
public class SwaggerApplication {
    public static void main(String[] args) {
        SpringApplication.run(SwaggerApplication.class,args);
    }
}

2.5 启动SwaggerApplication ,访问http://localhost:8080/swagger-ui.html

 即可以查看接口文档了......

路漫漫其修远兮,吾将上下而求索,希望此篇文章对大家有所帮助......

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004244.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号