首页 > 其他分享 >Spring Boot2中Swagger3使用

Spring Boot2中Swagger3使用

时间:2024-05-10 13:44:30浏览次数:15  
标签:return title Spring ResponseResult Boot2 Operation Swagger3 public Schema

1.依赖引入

<!--   引入swagger          -->
<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.7.0</version>
</dependency>

2.常用注解介绍

swagger2 OpenAPI 3 注解位置
@Api @Tag(name = “接口类描述”) Controller 类上
@ApiOperation @Operation(summary =“接口方法描述”) Controller 方法上
@ApiImplicitParams @Parameters Controller 方法上
@ApiImplicitParam @Parameter(description=“参数描述”) Controller 方法上 @Parameters 里
@ApiParam @Parameter(description=“参数描述”) Controller 方法的参数上
@ApiIgnore @Parameter(hidden = true) 或 @Operation(hidden = true) 或 @Hidden -
@ApiModel @Schema DTO、DO、VO属性上
@ApiModelProperty @Schema DTO、DO、VO属性上

3.配置文件

@Configuration
public class SwaggerConfig {
    @Bean
    public GroupedOpenApi PayApi(){
        return GroupedOpenApi.builder().group("支付微服务模块").pathsToMatch("/pay/**").build();
    }

    @Bean
    public GroupedOpenApi OtherApi(){
        return GroupedOpenApi.builder().group("其它微服务模块").pathsToMatch("/other/**", "/others").build();
    }

    @Bean
    public OpenAPI docsOpenApi(){
        return new OpenAPI()
                .info(new Info()
                        .title("cloud2024")
                        .description("通用设置rest")
                        .version("1.0"))
                .externalDocs(new ExternalDocumentation()
                        .description("www.cnblogs.com/wyzstudy")
                        .url("https://www.cnblogs.com/wyzstudy"));
    }
}

4.常见使用

@Data
@Schema(title = "支付DTO对象")
public class PayDTO implements Serializable {
    @Schema(title = "ID")
    private Integer id;

    @Schema(title = "支付ID")
    private String payNo;

    @Schema(title = "订单ID")
    private String orderNo;

    @Schema(title = "用户ID")
    private Integer userId;

    @Schema(title = "支付金额")
    private Double amount;
}
@RestController
@RequestMapping("/pay")
@Tag(name = "支付模块", description = "支付相关接口")
public class PayController {
    @Resource
    private PayService payService;

    @Operation(summary = "新增支付订单信息")
    @PostMapping
    public ResponseResult<String> save(@RequestBody PayDTO payDTO){
        payService.save(payDTO);
        return ResponseResult.success();
    }

    @Operation(summary = "删除支付订单信息")
    @DeleteMapping("/{id}")
    public ResponseResult<String> delete(@PathVariable Integer id){
        payService.delete(id);
        return ResponseResult.success();
    }

    @Operation(summary = "更新支付订单信息")
    @PutMapping
    public ResponseResult<String> update(@RequestBody PayDTO payDTO){
        payService.updatePayById(payDTO);
        return ResponseResult.success();
    }

    @Operation(summary = "根据ID查询支付订单信息")
    @GetMapping("/{id}")
    public ResponseResult<PayVO> queryPayById(@PathVariable Integer id){
        return ResponseResult.success(payService.getPayById(id));
    }

    @Operation(summary = "查询所有订单信息")
    @GetMapping
    public ResponseResult<List<PayVO>> getPayList(){
        return  ResponseResult.success(payService.getPayList());
    }
}

5.前端查看


访问地址:http://localhost:8001/swagger-ui/index.html

端口号要改为你服务的端口号。

标签:return,title,Spring,ResponseResult,Boot2,Operation,Swagger3,public,Schema
From: https://www.cnblogs.com/wyzstudy/p/18184130

相关文章

  • springboot JunitTest
    junit测试参考官方文档:https://docs.spring.io/spring-boot/docs/2.0.4.RELEASE/reference/html/boot-features-testing.html1.对springboot框架的项目进行测试,需要引入测试包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boo......
  • 使用spring.cloud.stream来发送kafka消息,并根据某字段将消息发送到固定partition上
    1、问题:在进行功能开发的时候遇到一个需求,具体需求如下:在某个服务A中接收到消息,对消息体进行校验,判断消息体中的数据是否需要产生告警,若产生告警,则将告警信息发送到kafka中,由另一个服务B接收到消息并记录到mongo中;当A服务在此接收到消息,发现以前的某个告警已经恢复,则再......
  • SpringBoot中全部注解归纳解释
    https://blog.csdn.net/weixin_55772633/article/details/131882825https://www.cnblogs.com/jingzh/p/14620211.html1springboot注解1.1引言1.2基本注解1.3JPA注解1.4SpringMVC相关注解1.5全局异常处理1.6项目中具体配置解析和使用环境1.7Lombok注解1.8数......
  • SpringBoot+使用过滤器链执行风控决策
    风控流程下单前进行风控校验//1.begin---风控处理---前置处理{黑白名单校验}RiskControlRuleEnumcontrolRuleEnum=riskControlHandlerService.preHandle(mappingObj.getMerchantGoodsType(),thatUser);if(controlRuleEnum!=null){log......
  • Spring 中 bean 的循环依赖
    什么是循环依赖A直接或间接依赖B的同时B又间接或直接依赖A,此时我们可以称A和B之间存在循环依赖关系。在使用Spring的过程中应该尽量避免循环引用关系的出现。生命周期简述在阅读下面的样例之前,需要先了解一下Spring中bean的生命周期,简单来说bean的生命周期分......
  • Springboot项目镜像制作&传递环境变量、设置hostname、动态设置JVM参数、cmd&entrypoi
    实现制作一个springboot的镜像,并且可以传递环境变量实现动态JVM参数和端口。0.准备&cmd、entrypoint区别1.准备springboot项目一个简单的springboot项目,默认启动8001端口,里面只有一个接口。xxx%curllocalhost:8081indexdocker环境2.CMD、entrypoint区......
  • springboot3.2.3如何集成swagger
    在SpringBoot中集成Swagger可以方便地生成API文档并进行接口测试。要在SpringBoot3.2.3中集成Swagger,你可以按照以下步骤进行操作:1.添加Swagger依赖到pom.xml文件中:点击查看代码<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter<......
  • openfeign接口Springboot启动Bean报错未找到Singleton bean creation not allowed whi
    检查步骤检查springboot启动类是否标注@EnableFeignClients注解,未标注该注解会导致无法注入bean检查远程调用模块是否标注注解@FeignClient检查@FeignClient注解中是否写了正确的微服务名称(区分大小写)检查@FeignClient注解中标识的微服务是否启动​​原因:此处接......
  • springboot+vue项目
    1MyBatisPlus的分页插件是怎么生效的?体现在哪里?PaginationInnerInterceptor是通过拦截数据库操作来实现分页功能的。 MyBatisPlus的分页插件PaginationInnerInterceptor是通过拦截数据库操作来实现分页功能的。它的工作原理如下:配置分页插件:在你的SpringBoot应用......
  • SpringBoot随手笔记
    SpringBoot随手笔记0关于火狐浏览器什么时候会发出http请求的说明在抓包的情况下(按下F12后的模式),不管是刷新页面还是在浏览器地址栏回车,该页面中的图片都会发出http请求;但如果不是抓包的模式下,如果访问的页面和上一次访问的页面相同(地址栏的地址没有更改),不管是刷新页面还......