首页 > 其他分享 >Swagger 3.0使用

Swagger 3.0使用

时间:2023-11-29 22:44:32浏览次数:42  
标签:Swagger 使用 springframework 3.0 org import springfox documentation

一、Swagger简介

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许 API 来始终保持同步。Swagger 让部署管理和使用功能强大的 API 从未如此简单。

二、创建项目

image.png

引入依赖

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

修改启动类

添加注解@EnableOpenApi

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.oas.annotations.EnableOpenApi;

@SpringBootApplication
@EnableOpenApi
public class SwaggerDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SwaggerDemoApplication.class, args);
    }
}

创建Swagger配置类

import static springfox.documentation.service.ApiInfo.DEFAULT_CONTACT;
import java.util.ArrayList;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
 * @author techoc
 * @Date 2021/4/11
 */
@EnableOpenApi  //开启swagger3
@Configuration
public class SwaggerConfig {
    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.OAS_30) //与swagger2.0不同
            //开启swagger
            .enable(true)
            .groupName("swagger")
            .apiInfo(apiInfo())
            .select()
            //设置扫描路径
            .apis(RequestHandlerSelectors.basePackage("cn.techoc.swaggerdemo.controller"))
            //指定扫描web路径
            //.paths(PathSelectors.ant("/techoc/**"))
            .build();
    }

    private ApiInfo apiInfo() {
        //作者信息
        Contact contact = new Contact("Techoc", "https://techoc.xyz", "[email protected]");
        return new ApiInfo(
            //文档标题
            "Swagger-demo",
            //文档描述
            "学习Swagger的demo项目",
            //文档版本
            "2.0",
            //组织链接
            "https://techoc.xyz",
            //连接点
            contact,
            //开源协议
            "Apache 2.0",
            //开源协议url
            "https://www.apache.org/licenses/LICENSE-2.0",
            new ArrayList<>());
    }
}

创建Controller

package cn.techoc.swaggerdemo.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;


/**
 * @author techoc
 * @Date 2021/4/11
 */
@RestController
@Api(tags = "用户管理")
public class HelloController {

    @ApiOperation("返回id")
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    @ApiImplicitParam(name = "id", value = "用户编号", readOnly = true)
    public int hello(@RequestParam(required = true) int id) {
        return id + 2;
    }
}

运行项目

访问http://localhost:8080/swagger-ui/index.html

image.png

标签:Swagger,使用,springframework,3.0,org,import,springfox,documentation
From: https://www.cnblogs.com/techoc/p/17866095.html

相关文章

  • LinkedList的常见使用方法
    1、addbooleanadd(Ee):在链表后添加一个元素,如果成功,返回true,否则返回false;voidaddFirst(Ee):在链表头部插入一个元素;addLast(Ee):在链表尾部添加一个元素;voidadd(intindex,Eelement):在指定位置插入一个元素。 2、removeEremove():移除链表中第一个元素;booleanremove(Ob......
  • ArrayList的常见使用方法
    List接口常用方法:1、add(Objectelement):向列表的尾部添加指定的元素。2、size():返回列表中的元素个数。3、get(intindex):返回列表中指定位置的元素,index从0开始。4、add(intindex,Objectelement):在列表的指定位置插入指定元素。5、set(inti,Objectelement):将索引......
  • 正则表达式的几个函数,sub、match、search、findall、split的几个函数的使用
    importrepattern='\d\.\d+'s='Istudy3.114pythoneveryand2.71pythonIloveyou's2='pythonIloveyou'match=re.findall(pattern,s)#findall函数获取匹配对象中所有的匹配值,获得一个列表类型。match2=re.findall(pattern,s2)print(match)#输出结果:[&......
  • 页面静态化——Django中Template和Context模块的使用方法
    1.Template和Context的导入fromdjango.templateimportTemplate,Context2.生成静态页面——在后端调用模板语法生成HTML页面,并保存到指定路径 2.1我们想生成一个前端页面,代码如下后端视图层传入的对象:user_data=models.Userdata.objects.all()<html......
  • java集合框架(三)ArrayList的常见使用
    1、ArrayList简介在集合框架中,ArrayList是一个类,实现了List接口:1.ArrayList是以泛型的方式实现的,使用时必须先实例化2.ArrayList实现了randomAccess接口,所以ArrayList支持随机访问3.ArrayList实现了cloneable接口,ArrayList时可以克隆的4.ArrayList不是线程安全的,(Vector是线程......
  • Oracle数据库 使用存储过程判断索引是否存在,再删除索引
    不多废话DECLAREindex_countNUMBER;BEGIN--判断索引UK_TEST_2是否存在SELECTCOUNT(*)INTOindex_countFROMuser_indexesWHEREindex_name='UK_TEST_2';IFindex_count>0THENEXECUTEIMMEDIATE'DROPINDEXU......
  • Servlet - 使用 changeSessionId() 改变SessionId 防止会话固定攻击
    Servlet-使用changeSessionId()改变SessionId防止会话固定攻击在会话固定攻击,黑客获取/设置(通过任何方式)另一个人的会话ID。然后,黑客可以冒充他人并获取敏感信息。JavaServlet3.1引入了以下HttpServletRequest方法:StringchangeSessionId()此方法将当前会话id更......
  • 使用C#将几个Excel文件合并去重分类
    需要将几个Excel表格里面的数据去重,然后将每个站点的数据另存为一张Sheet上。几个表格如下所示: 实现效果如下所示: 具体实现需要使用EPPlus操作Excel安装EPPlus如下所示: 为了更好的演示与说明,把步骤进行了拆分,先导入Excel数据,再去重,再进行数据分类,最后再导出为Excel......
  • IDEA插件:Apipost Helper使用
    Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里给大家介绍一下Apipost-Helper的安装和使用安装在IDEA编辑器插件中心输入Apipost搜索安装:......
  • Java 8 仍被广泛使用,占比 50%
    调查中,更多的开发人员选择在生产中使用Java17,而不是Java11。Docker逐渐成为打包Web应用程序的首选,且Spring和SpringBoot的使用率遥遥领先。具体而言,开发者最常使用的 Java版本是 Java8,占比高达 50%;其次分别是 Java17(45%)、Java11(38%)以及 Java20(11%......