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