首页 > 其他分享 >springboot配置Swagger3.0

springboot配置Swagger3.0

时间:2023-05-28 18:00:13浏览次数:58  
标签:配置 springboot Swagger3.0 value public ApiModelProperty private activity id

springboot配置Swagger3.0

1、pom加入依赖

我们创建一个SpringBoot项目,引入 swagger3 依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

2、启动类上加入注解

在启动类上加入两个注解,即可开启 swagger3

@SpringBootApplication
@EnableSwagger2
@EnableOpenApi
public class NacosApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosApplication.class, args);
        System.out.println("我是 nacos 微服务");
    }
}

对于swagger,简单的配置就可以看到页面了,我们我输入 localhost:8080/swagger-ui/index.html

3、创建Swagger配置类

对于swagger,我们可以对 index.html 页面做一些配置,比如邮箱、姓名、git地址等。

@Configuration
public class SwaggerConfiguration {

    @Bean
    Docket docket() {
        return new Docket(DocumentationType.OAS_30)
                // 配置网站基本信息
                .apiInfo(new ApiInfoBuilder()
                        .title("nacos微服务接口文档")
                        .version("v1.0")
                        .description("在线nacos微服务接口文档")
                        .contact(new Contact("choleen", "https://choleen95.github.io/",
                                ""))
                        .build())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.nacos.controller"))
                .build();

    }

}

目前,对于请求,我们配置了对于controller包下的所有类的接口,都展示在上面。

4、创建接口-三种

目前创建三种接口,一种是form表单传值,一种是路径传参,一种是实体传参

@Api("查询演出接口")
@RequestMapping("/hello/")
@RestController
public class HelloController {

    private static final Logger logger = LoggerFactory.getLogger(HelloController.class);
    @Resource(name = "activityMapper")
    ActivityMapper activityMapper;

    @ApiOperation("根据场地城市及Id查询演出表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "venueCity", value = "场地城市"),
            @ApiImplicitParam(name = "id", value = "id")
    })
    @GetMapping("activity")
    public ResponseHelper sayHello(String venueCity, @RequestParam(required = true) String id) {
        List<Activity> list = activityMapper.queryEntityList(venueCity, id);
        return ResponseHelper.build(200, list);
    }

    @ApiOperation("根据id查询演出")
    @ApiImplicitParam(name = "id", value = "id")
    @GetMapping("{id}")
    public ResponseHelper queryInfo(@PathVariable(value = "id")Long id) {
        Activity activity = activityMapper.selectById(id);
        return ResponseHelper.build(200, activity);
    }

    @ApiOperation("分页查询演出")
    @ApiImplicitParam(name = "activity", value = "演出实体")
    @GetMapping("queryByPage")
    public ResponseHelper queryByActivity(@RequestBody Activity activity) {
        QueryWrapper<Activity> wrapper = new QueryWrapper<>();
        wrapper.eq("venue_city",activity.getVenueCity()).eq("id",activity.getId());
        PageDTO<Activity> page = new PageDTO<>(1,10);
        PageDTO<Activity> page1 = activityMapper.selectPage(page, wrapper);
        return ResponseHelper.build(200, page1);
    }

}

这里有几个参数需要介绍一下。

  • @Api 在类上,标明此Controller的用处、
  • @ApiOperation 表明此接口的用处
  • @ApiImplicitParam 请求一个入参的说明,有name、value、defaultValue等属性
  • @ApiImplicitParams 若有多个入参,此是一个数组,把多个ApiImplicitParam放进去即可
  • @RequestParam(required=true) 和 @ApiImplicitParam中的必填不同,一个是开发者指定参数必传,一个是swagger调用时必填,但对后台无影响。
  • 若入参是一个实体,比如第三个分页查询 ,可以在实体中也注入 swagger 注解,在前端页面也可让开发者了解参数结构
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "activity", description = "演出表")
@TableName("activity")
public class Activity implements Serializable {

    private static final long serialVersionUID = -3563130625676560116L;
    @ApiModelProperty(value = "主键ID")
    private Long id;
    @ApiModelProperty(value = "演出名称")
    private String name;
    @ApiModelProperty(value = "演出起始时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date showStartTime;
    @ApiModelProperty(value = "演出结束时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date showEndTime;
    @ApiModelProperty(value = "场地城市")
    private String venueCity;
    @ApiModelProperty(value = "场地名称")
    private String venueName;
    @ApiModelProperty(value = "场地地址")
  • @ApiModel 是描述此类的信息
  • @ApiModelProperty 是描述字段的信息

5、swagger调试

接口编写好了,我们可以去 localhost:8080/swagger-ui/index.html 页面上去调试。

点击 try it 然后再填入参数,点击 Excute ,即可再返回中看到结果。

标签:配置,springboot,Swagger3.0,value,public,ApiModelProperty,private,activity,id
From: https://www.cnblogs.com/Choleen/p/17438584.html

相关文章

  • 应用启动时加载application.properties配置文件
    配置aliyun.sms.regionId=defaultaliyun.sms.accessKeyId=LTAIxxxaliyun.sms.secret=PAxxxx importorg.springframework.beans.factory.InitializingBean;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.stereotype.Compone......
  • Java:SpringBoot整合Canal+RabbitMQ组合实现MySQL数据监听
    canal[kə’næl],译意为水道/管道/沟渠,主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费目录一、MySQL设置二、启动Canal服务端三、通过Canal客户端消费数据四、通过RabbitMQ消费数据1、启动RabbitMQ2、修改canal配置3、消费RabbitMQ中的数据文档资料github:https......
  • SpringBoot项目启动失败报错Annotation-specified bean name ‘xx‘ for bean class [
    Annotation-specifiedbeanname'datahubServiceImpl'forbeanclass[com.peony.common.service.impl.DatahubServiceImpl]conflictswithexisting,non-compatiblebeandefinitionofsamenameandclass[com.peony.common.service.DatahubServiceImpl] 1、......
  • Git安装和配置教程:Windows/Mac/Linux三平台详细图文教程,带你一次性搞定Git环境
    Git是一款免费、开源的分布式版本控制系统,广泛应用于软件开发领域。随着开源和云计算的发展,Git已经成为了开发者必备的工具之一。本文将为大家介绍Git在Windows、Mac和Linux三个平台上的安装和配置方法,带你一次性搞定Git环境Windows平台安装Git首先,你需要从Git官网下载Window......
  • Git安装和配置教程:Windows/Mac/Linux三平台详细图文教程,带你一次性搞定Git环境
    Git是一款免费、开源的分布式版本控制系统,广泛应用于软件开发领域。随着开源和云计算的发展,Git已经成为了开发者必备的工具之一。本文将为大家介绍Git在Windows、Mac和Linux三个平台上的安装和配置方法,带你一次性搞定Git环境Windows平台安装Git首先,你需要从Git官网下载Windo......
  • Elasticsearch掰开揉碎第17篇SpringBoot集成Elasticsearch之索引操作
    引言上一篇主要讲解的是:高亮显示、自定义高亮显示、通过html展示高亮效果。本篇主要讲解的是:创建SpringBoot项目、SpringBoot项目的配置修改、创建配置类、索引的API操作。创建spring项目双击IntelliJIDEA工具创建配置类编辑测试类1、创建索引运行测试类运行结果查看现有的索引可......
  • Elasticsearch掰开揉碎第18篇SpringBoot集成Elasticsearch之文档操作
    引言上一篇主要讲解的是:创建SpringBoot项目、SpringBoot项目的配置修改、创建配置类、索引的API操作本篇主要讲解的是:文档的API操作(创建pojo、导入fastjosn依赖、添加文档、获取文档、获取文档信息、更新文档信息、删除文档信息、批量插入数据、高级查询)本篇文中所有操作,接着在上......
  • 使用 Nacos 的配置功能和自动更新
    Nacos不但可以作为注册中心,同时也可以作为配置中心,方便我们对SpringCloud中的各个SpringBoot微服务的配置进行统一的管理维护。尤其是当微服务数量较多,并且在不同的服务器上进行部署时,使用配置中心进行统一管理维护的优势就更加明显。本篇博客仍然使用之前搭建的Nacos集群......
  • springboot+springsecurity+jwt+elementui图书管理系统
    图书管理系统关注公号:java大师,回复“图书”,获取源码一、springboot后台1、mybatis-plus整合1.1添加pom.xml<!--mp逆向工程--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></de......
  • springboot+springsecurity+jwt+elementui图书管理系统
    ​​图书管理系统​​一、springboot后台1、mybatis-plus整合1.1添加pom.xml<!--mp逆向工程--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>......