项目集成swagger
文章目录
- 前言
- 一、背景
- 二、问题复现
- 1.Full authentication is required to access this resource
- 2.Illegal DefaultValue null for parameter type integer
- 总结
前言
项目集成swagger这个没啥好整的,maven项目就在pom文件导入依赖,servlet项目就在lib目录下导入jar包,这些过程略。
一、背景
我这里是springboot+maven,swagger集成之后,项目启动,访问地址 ip:端口/项目路径/doc.html
例如自己电脑启动项目之后访问路径为
http://127.0.0.1:9001/doc.html
这个访问路径是未设置项目路径的,
项目路径介绍:
Context path of the application. 应用的上下文路径,也可以称为项目路径,是构成url地址的一部分。
springboot关于项目路径的配置:
1、springboot 2.0之前,配置为 server.context-path=/cattle-agent
2、springboot 2.0之后,配置为 server.servlet.context-path=/cattle-agent
二、问题复现
1.Full authentication is required to access this resource
在接入swagger之后,访问页面,会报错,错误提示 访问此资源需要身份验证,因为swagger这个不需要身份验证,处理方法:新建一个config类,这里使用的是swagger-ui,如果需要增强版本或者其他版本的swagger-ui样式,去百度搜。
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.resource.ContentVersionStrategy;
import org.springframework.web.servlet.resource.VersionResourceResolver;@Configuration
@Slf4j
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {VersionResourceResolver versionResourceResolver = new VersionResourceResolver().addVersionStrategy(new ContentVersionStrategy(), "/**");// 配置静态文件访问路径
// registry
// .addResourceHandler("/**")
// .addResourceLocations("classpath:/static/")
// .setCachePeriod(2592000)
// .resourceChain(true)
// .addResolver(versionResourceResolver);// 解决swagger无法访问registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");// 解决swagger的js文件无法访问registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");}
}
2.Illegal DefaultValue null for parameter type integer
加入上述配置之后,启动项目,访问页面,可以显示出接口文档了,但是在控制台会出现这个问题 Illegal DefaultValue null for parameter type integer
解决办法:
pom文件增加如下依赖
<!-- 解决 Illegal DefaultValue null for parameter type integer 异常 --><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>1.5.21</version></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId><version>1.5.21</version></dependency>
总结
刷新maven,启动项目,swagger正常访问,控制台无报错!