温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

spring mvc如何集成swagger-ui2

发布时间:2021-10-11 10:01:19 来源:亿速云 阅读:162 作者:柒染 栏目:大数据

本篇文章给大家分享的是有关spring mvc如何集成swagger-ui2,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1·spring mvc 构建 swagger-ui

spring mvc如何集成swagger-ui2
spring mvc如何集成swagger-ui2

1·添加依赖

<dependency>
   <groupId>com.google.guava</groupId>
   <artifactId>guava</artifactId>
   <version>27.0.1-jre</version>
</dependency>
<!--swagger增强UI-->
<dependency>

    <groupId>com.github.xiaoymin</groupId>

    <artifactId>swagger-bootstrap-ui</artifactId>

    <version>1.9.6</version>

</dependency>

<!-- swagger2 核心依赖 -->

<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>

2`添加swagger资源文件

<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>

<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>

3·拦截器放行swagger资源文件

<mvc:exclude-mapping path="/swagger*/**"></mvc:exclude-mapping>

<mvc:exclude-mapping path="/v2/**"></mvc:exclude-mapping>

<mvc:exclude-mapping path="/webjars/**"></mvc:exclude-mapping>

4·swagger请求授权

<security:intercept-url pattern="/swagger-resources/**" access="permitAll" />

<security:intercept-url pattern="/v2/**" access="permitAll" />

5·创建swagger的配置类

package swagger;



import io.swagger.annotations.ApiOperation;

import org.springframework.context.annotation.Bean;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import springfox.documentation.builders.ApiInfoBuilder;

import springfox.documentation.builders.PathSelectors;

import springfox.documentation.builders.RequestHandlerSelectors;

import springfox.documentation.service.ApiInfo;

import springfox.documentation.spi.DocumentationType;

import springfox.documentation.spring.web.plugins.Docket;

import springfox.documentation.swagger2.annotations.EnableSwagger2;



//启用Swagger2

@EnableSwagger2

public class Swagger2Config extends WebMvcConfigurationSupport {



    @Bean

    public Docket createRestApi() {

        return new Docket(DocumentationType.SWAGGER_2)

                .apiInfo(apiInfo()).select()

                //扫描指定包中的swagger注解

                //.apis(RequestHandlerSelectors.basePackage("com.xia.controller"))

                //扫描所有有注解的api,用这种方式更灵活

                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))

                .paths(PathSelectors.any())

                .build();

    }





    @Bean

    private ApiInfo apiInfo() {

        return new ApiInfoBuilder()

                .title("基础平台 RESTful APIs")

                .description("基础平台 RESTful 风格的接口文档,内容详细,极大的减少了前后端的沟通成本,同时确保代码与文档保持高度一致,极大的减少维护文档的时间。")

                .termsOfServiceUrl("http://xiachengwei5.coding.me")

                .version("1.0.0")

                .termsOfServiceUrl("http://xxx.xxx.com")

                .license("LICENSE")

                .licenseUrl("http://xxx.xxx.com")

                .build();

    }





    @Override

    public void addViewControllers(ViewControllerRegistry registry) {

        registry.addRedirectViewController("/docApi/v2/api-docs", "/v2/api-docs");

        registry.addRedirectViewController("/docApi/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui");

        registry.addRedirectViewController("/docApi/swagger-resources/configuration/security", "/swagger-resources/configuration/security");

        registry.addRedirectViewController("/docApi/swagger-resources", "/swagger-resources");

    }



    @Override

    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("/docApi/swagger-ui.html**").addResourceLocations("classpath:/META-INF/resources/swagger-ui.html");

        registry.addResourceHandler("/docApi/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");

    }



}

6·加载swagger配置类

<bean class="springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration" id="swagger2Config"/>

7·运行项目 访问地址:ip/项目名/doc.html

swagger常用注解:
@ApiIgnore 注解可以忽略这个类、方法、参数
@Api(tags={"这里写controller的注释"})

@Api(tags={"知识库接口"})
@RestController
@RequestMapping
public class InfoController {

@ApiOperation(value = "方法描述")

@ApiOperation(value = "获取某法律法规详情数据")
	@RequestMapping(value = "/info", method = RequestMethod.GET)
	public Info getInfoById(

@ApiParam(name="id",value = "方法参数描述")

public Info getInfoById(
			@ApiParam(name="id",value = "法律法规的ID") @RequestParam("id") String id)

@ApiModelProperty(value="实体字段描述")

	@ApiModelProperty(value="ID")
	private String id;

@ApiModel(value = "实体类描述")

@ApiModel(value = "info:法律法规实体")
public class Info

以上就是spring mvc如何集成swagger-ui2,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI