Swagger-springDoc基础使用
步骤:
- 添加maven配置
- 添加配置文件
- controller文件给接口添加注释
- 基础注解
maven配置:
<!--swagger-ui-->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.5.12</version>
</dependency>
添加配置文件:
package com.resume.uniapp.util;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springdoc.core.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* springDoc-swagger标准配置
*
* @author huang cheng
* 2021/8/13
*/
@Configuration
public class SpringDocSwaggerConfig {
private static final String basePackage = "com.resume.uniapp.controller";//需要扫描api路径,修改成自己controller文件的路径
private static final String headerName = "Authorization";//请求头名称
@Bean
public GroupedOpenApi usersGroup() {
return GroupedOpenApi.builder()
.group("users")
.addOperationCustomizer((operation, handlerMethod) -> {
operation.addSecurityItem(new SecurityRequirement().addList(headerName));
return operation;
})
.packagesToScan(basePackage)
.build();
}
@Bean
public OpenAPI customOpenAPI() {
Components components = new Components();
//添加右上角的统一安全认证
components.addSecuritySchemes(headerName,
new SecurityScheme()
.type(SecurityScheme.Type.APIKEY)
.scheme("basic")
.name(headerName)
.in(SecurityScheme.In.HEADER)
.description("请求头")
);
return new OpenAPI()
.components(components)
.info(apiInfo());
}
private Info apiInfo() {
Contact contact = new Contact();
contact.setEmail("1003816735@qq.com");
contact.setName("cheng");
contact.setUrl("https://blog.csdn.net/qq_42495847?spm=1000.2115.3001.5343");
return new Info()
.title("sunnyDay-swagger文档")
.version("1.0")
.contact(contact)
.description("博客请关注:https://blog.csdn.net/qq_42495847?spm=1000.2115.3001.5343")
.license(new License().name("Apache 2.0").url("http://springdoc.org"));
}
}
注意⚠️:
修改路径,controller路径和此文件路径
controller层添加注释:
package com.resume.uniapp.controller;
import com.resume.uniapp.domain.UserInfo;
import com.resume.uniapp.req.UserInfoRegisterReq;
import com.resume.uniapp.service.UserInfoService;
import com.resume.uniapp.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Tag(name = "用户基本信息")
@RestController
@RequestMapping("/user")
public class UserInfoController {
@Resource
private UserInfoService userService;
@Operation(summary = "查询全部数据")
@GetMapping("/selectAll")
public R selectAll(){
R r = new R();
r.setData(userService.selectAll());
return r;
}
@Operation(summary = "根据id查询一条数据")
@GetMapping("/selectById")
public R selectById(int id){
R r = new R();
r.setData(userService.selectById(id));
return r;
}
@Operation(summary = "增加一条数据")
@PostMapping("/addUserInfo")
public R addUserInfo(@RequestBody UserInfo req){
R r = new R();
userService.addUserInfo(req);
return r;
}
@Operation(summary = "修改一条数据")
@PostMapping("/editUserInfo")
public R editUserInfo(@RequestBody UserInfo req){
R r = new R();
userService.editUserInfo(req);
return r;
}
@Operation(summary = "根据id删除一条数据")
@GetMapping("/delUserInfoById")
public R delUserInfoById(int id) {
R r = new R();
userService.delUserInfoById(id);
return r;
}
@Operation(summary = "根据name和email获取一行的id")
@GetMapping("/register")
public R register(UserInfoRegisterReq req){
R r = new R();
r.setData(userService.register(req));
return r;
}
}
springdoc基于swagger3注解
swagger3 注解位置
@Tag(tags = “接口类描述”) Controller 类上
@Operation(summary =“接口方法描述”) Controller 方法上
@Parameters Controller 方法上
@Parameter(description=“参数描述”) Controller 方法上 @Parameters 里
@Parameter(description=“参数描述”) Controller 方法的参数上
@Parameter(hidden = true) 或 @Operation(hidden = true) 或 @Hidden –
@Schema(description = “dto类描述”) DTO类上
@Schema(description = “属性描述”) DTO属性上
原网址:https://blog.csdn.net/qq_42495847/article/details/121424240



Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 26
Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 27
Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 28