Type javax.servlet.http.HttpServletRequest not present
运行环境 Swagger 3.0.0、springboot 3.0.0
产生原因: Swagger 3.0.0不支持spring3.0.0
两个解决方案:
1.降低springboot版本为2.x
2.放弃Swagger,使用 springdoc-openapi-starter-webmvc-ui
第二种解决方案:
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.0.0-M3</version> </dependency>
/** * 接口文档配置 * * @author Canva */ @Configuration public class SpringDocConfig { @Bean public OpenAPI apiInfo() { return new OpenAPI().info(new Info().title("后端接口文档").version("1.0.0")); } @Bean public GroupedOpenApi httpApi() { return GroupedOpenApi.builder() .group("http") .pathsToMatch("/**") .build(); } }
注解变化 @Api ==>@Tag(name="",description="")
@ApiOperation==》@ApiResponse(description = "XXXX", content = @Content(mediaType = "application/json"))
@ApiModelProperty==》@Schema
@Tag 用来设置 Controller 的名称和描述,类似于给 Postman 的 Collections 命名;
@ApiResponses 和 @ApiResponse 用来配置响应;
@Operation 用来设置接口名称和描述;
@Parameter 用来设置请求参数的描述、是否必填和示例。