Swagger:手把手教你从0开始配置idea中swagger,全步骤配图文版。

这篇具有很好参考价值的文章主要介绍了Swagger:手把手教你从0开始配置idea中swagger,全步骤配图文版。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Swagger 是一组用于设计、构建、文档化和使用 RESTful Web 服务的开源工具和框架。它允许开发团队设计、构建和测试 API,并提供易于理解的文档,以便开发人员和消费者能够快速了解和使用 API。Swagger 通常与各种编程语言和框架一起使用,以简化 API 的开发和维护过程。

第一步:用IDEA搭建一个Spring Boot项目 (够从0了吧)

1.文件==>项目==>新建项目,这里新建一个Spring项目

idea swagger,Spring工具类,java,ide,spring boot,后端

2.下一步,选择版本以及所需的依赖,然后完成项目创建,进去等待依赖加载完毕。

idea swagger,Spring工具类,java,ide,spring boot,后端

3.如果不出以外的的话,建立后的项目文件目录应该为:

idea swagger,Spring工具类,java,ide,spring boot,后端

第二步:添加Swagger相关依赖

1.打开上图pom.xml文件,添加如下三个依赖:

idea swagger,Spring工具类,java,ide,spring boot,后端

<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger2</artifactId>
   <version>2.7.0</version>
</dependency>
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger-ui</artifactId>
   <version>2.7.0</version>
</dependency>
<dependency>
  <groupId>com.github.xiaoymin</groupId>
  <artifactId>knife4j-spring-boot-starter</artifactId>
  <version>2.0.8</version>
</dependency>

2.接着准备配置一下application.properties:主要是JDBC的一些配置

idea swagger,Spring工具类,java,ide,spring boot,后端

#将路径替换为你的路径
spring.datasource.url=jdbc:mysql://localhost:3306/food?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver

然后准备配置文件:

3.在com.swaggertest下新建config文件夹,然后新建SwaggerConfigWebMvcConfigurer两个JAVA文件

idea swagger,Spring工具类,java,ide,spring boot,后端

4.点击SwaggerConfig,配置为如下,你粘贴之后大概率会全都是红的,需要一个一个导入类,如果你发现无法导入类,那就是你的依赖没有加载完毕,右键pom选择meaven然后重构

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                // 通过.select()方法,配置扫描哪些API接口,RequestHandlerSelectors配置如何扫描接口
                .select()
                //any() // 扫描所有,项目中的所有接口都会被扫描到
                //none() // 不扫描接口
                // 通过方法上的注解扫描,如withMethodAnnotation(GetMapping.class)只扫描get请求
                //withMethodAnnotation(final Class<? extends Annotation> annotation)
                // 通过类上的注解扫描,如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口
                //withClassAnnotation(final Class<? extends Annotation> annotation)
                //basePackage(final String basePackage) // 根据包路径扫描接口
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))  //添加ApiOperiation注解的被扫描
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        Contact contact = new Contact("加洛斯", "666", "xxxxx@qq.com");
        return new ApiInfo(
                "文档标题",
                "文档标题的描述",
                "版本1.0",
                "urn:tos",
                contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList());
    }
}

类似于如下情况的话,重构pom文件

idea swagger,Spring工具类,java,ide,spring boot,后端

右键pom,最底下选择maven,重新加载项目,然后就会出现如下可以导入类

idea swagger,Spring工具类,java,ide,spring boot,后端

 这个要注意,选择service:

idea swagger,Spring工具类,java,ide,spring boot,后端

 配置好后如下图:

idea swagger,Spring工具类,java,ide,spring boot,后端

5.接下来配置WebMvcConfigurer

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurationSupport {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");

        /** 配置knife4j 显示文档 */
        registry.addResourceHandler("doc.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        /**
         * 配置swagger-ui显示文档
         */
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        /** 公共部分内容 */
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

idea swagger,Spring工具类,java,ide,spring boot,后端

到此准备工作已经做的差不多了,但是后续也会有一些错误,我们碰到后一 一解决。

第三步:启动SpringBoot

1.启动springboot的启动类,访问http://localhost:8080/doc.html即可看到如下接口文档

idea swagger,Spring工具类,java,ide,spring boot,后端

 2.访问http://localhost:8080/swagger-ui.html即可看到如下接口文档

idea swagger,Spring工具类,java,ide,spring boot,后端

你也有可能会遇到:解决办法就是用谷歌浏览器试试,这倒霉微软自带的浏览器不知道怎么个事。

idea swagger,Spring工具类,java,ide,spring boot,后端

当然你也有可能会碰到如下情况

idea swagger,Spring工具类,java,ide,spring boot,后端

你会看到网上一堆人说你什么启动类位置不对,你可以检查一下位置,但是多半没有用,最有用的办法是在pom文件中检查一下上面那三个依赖两个swagger和一个knife4j你有没有添加以及在application.properties添加一句话:spring.mvc.pathmatch.matching-strategy=ant_path_matcher

idea swagger,Spring工具类,java,ide,spring boot,后端

到此为止,配置项完毕。接下来看看如何简单的使用一下Swagger。

第四步:使用swagger 

1.我们新建一个entity包,在此包下建立一个食物实体类:Food,以及foodtype  注意注意:实体类一定要遵循小驼峰命名法,一定要遵循小驼峰命名法,一定要遵循小驼峰命名法!!

要不然会出现无法显示@ApiModelProperty的值的情况

注解介绍:@ApiModel(value = "类别名")     作用在实体类上                 @ApiModelProperty作用在实体类的属性上(暂时先知道这两个就行,其他的在学习完配置之后研究)

idea swagger,Spring工具类,java,ide,spring boot,后端

idea swagger,Spring工具类,java,ide,spring boot,后端

@Data
@ApiModel(value = "食物类Model")
public class food {
    @ApiModelProperty(value = "食物ID")
    private String foodId;
    @ApiModelProperty(value = "食物名称")
    private String foodName;
    @ApiModelProperty(value = "食物种类ID")
    private String foodTypeId;
    @ApiModelProperty(value = "食物种类名")
    private String foodTypeName;

    public food(String foodId, String foodName, String foodTypeId, String foodTypeName) {
        this.foodId = foodId;
        this.foodName = foodName;
        this.foodTypeId = foodTypeId;
        this.foodTypeName = foodTypeName;
    }
}

@Data
@ApiModel(value = "食物种类Model")
public class foodtype {
    @ApiModelProperty(value = "食物种类ID")
    private String foodTypeId;
    @ApiModelProperty(value = "食物种类名")
    private String foodTypeName;
    @ApiModelProperty(value = "食物种类所属列表")
    private List<food> foodLists;
}

2.新建Controller包下的foodcontroller,然后配置好相关注解,同样配置如下注解@Api以及@ApiOperation(注解具体有什么用在往后学习时讲解,可以去看看别的大佬文章这里不多赘述)

idea swagger,Spring工具类,java,ide,spring boot,后端

@RestController
@Api(value = "食物Controller", tags = { "获取食物相关接口" })
@RequestMapping(value = "/food")
public class foodController {

    @ApiOperation(value = "获取食物种类类")
    @GetMapping("/getFoodtype")
    public foodtype test2() throws Exception {

        return null;
    }

    @ApiOperation(value = "获取食物类")
    @GetMapping("/getFood")
    public List<food> test1() throws Exception {
        //使用构造函数模拟一个查询的数据方便测试
        food food = new food("1", "锅包肉","1", "肉类");
        List<food> foodList = new ArrayList<food>();
        foodList.add(food);
        return foodList;
    }
}

3.到此为止我们的注解就搭建起来了,接下来我们看看效果,访问:http://localhost:8080/doc.html#/home       我们首先能看到Model

idea swagger,Spring工具类,java,ide,spring boot,后端

这里面的Model是我们在Controller中@ApiOperation注解中使用到了的才会显示,如果你定义了一个Model但是Controller层中的ApiOperation注解并没有用到这个Model,他就并不会显示在这里,我们来看看效果:

idea swagger,Spring工具类,java,ide,spring boot,后端

接下来看看Controller层,可以看到有我们刚刚定义的两个接口:

idea swagger,Spring工具类,java,ide,spring boot,后端

idea swagger,Spring工具类,java,ide,spring boot,后端

可以看到功能很强大,接下来看看接口的测试,我们刚刚用构造函数模拟了一个,看看返回如何:

idea swagger,Spring工具类,java,ide,spring boot,后端

到此我们的基础Swagger就搭建成功了,但是在实际开发的过程中仅仅使用这些还是远远不够的,后面我会将常用的Swagger注解讲解给大家,如果在搭建Swagger中遇到了哪些难题也欢迎各位留言,如果觉得有用可以点个赞,谢谢各位!!!!!文章来源地址https://www.toymoban.com/news/detail-757830.html

到了这里,关于Swagger:手把手教你从0开始配置idea中swagger,全步骤配图文版。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你从入门到精通C# Modbus通信

    在工业通信领域,Modbus通信是一种使用非常广泛的通信协议,Modbus一般有三种,分别为ModbusRTU、ModbusASCII、ModbusTCP,其中ModbusRTU、ModbusASCII是应用于串行链路上的协议,通俗一点就是说它是走串口的,ModbusTCP通俗点说就是它是走网口的,作者在自动化领域耕耘多年,做过的Mo

    2024年02月14日
    浏览(32)
  • .net8系列-04图文并茂手把手教你配置Swagger支持token以及实现Swagger扩展,Swagger代码单独抽离

    接上篇文章,我们当前已完成如下内容: 创建应用成功 创建接口成功 配置Swagger实现接口注释和版本控制 本文章主要内容为: 配置Swagger支持token传值测试接口 添加如下代码 文件目录:xiaojinWebApplicationxiaojinWebApplicationProgram.cs 打开接口测试页面 配置Token 观察页面 我们发现

    2024年04月27日
    浏览(27)
  • 【【手把手教你从SD卡驱动VDMA显示图片实验】】

    典型的BMP图像文件是由四部分组成的 包括了BMP的文件头,BMP信息头,调色板,位图数据 因为传递的是RGB图像 RGB不太需要调色板了 从信息头直接到位图数据 文件头占据了14个字节 分别是 查看这个16进制格式 BMP的文件格式 总是低字节的放在低地址位,高字节放在高地址位。

    2024年01月21日
    浏览(37)
  • 手把手教你从微软官网上下载系统镜像【保持最新版】

    🔥推荐阅读:http://t.csdn.cn/nQfIY🔥 🥇个人主页:@MIKE笔记 🥈专栏:爱倒腾 如何从微软官网下载到全系列的系统镜像: 有人可能会说,都有镜像下载工具了,还有了解如何从微软官网直接下载镜像的必要吗? MIKE笔记认为,不仅要知其然,还要知其所以然,掌握这些电脑技巧

    2024年02月04日
    浏览(46)
  • 从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

    传送门:从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(一) 我们虽然可以在输入 /swagger 后顺利的访问 Swagger UI 页面,但是我们发现每次运行项目都会默认访问 /weatherforecast 这个接口,想要将启动页设为 /swagger (或者其他页面)就需要用到配置文件 launchSettings.

    2023年04月12日
    浏览(34)
  • 从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(一)

    1、双击打开VS2022。 2、单击“创建新项目”,如下图。 3、选择“ASP.NET Core Web API”类型,然后单击“下一步”,如下图。 4、“项目名称”此处填写为“AllTestDemo”;“位置”此处放在E盘根目录;“解决方案名称”此处默认与“项目名称”保持一致;不勾选“将解决方案和项

    2023年04月11日
    浏览(49)
  • 从零开始Hadoop安装和配置,图文手把手教你,定位错误(已部署成功)

    既然你选择自己配置了,那么我想想和你聊一聊,相信我这对你整体配置Hadoop流程会有一个跟全面的了解,我们抛开繁杂的学术名词,其实就是要实现我一个任务可以在多个电脑上跑的过程(分散算力),那交给我们应该如果来搞?我们是不是要对我们的虚拟机先分配地址(

    2024年02月06日
    浏览(42)
  • 【Oracle安装及使用】超级详细的初次在python中使用Oracl图文详解!手把手教你从安装Oracle到在python中连接Oracle!

    需要安装pycharm、 主要任务:安装Oracle、Oracle环境配置、新建数据库、测试、pycharm中下载包、pycharm中使用Oracle。 1.Oracle完整安装详解 这篇很详细了,还附了安装包,按照博主一套下来基本没问题。 此外有几个小改动: (1)HOST我改成了IP地址 * 查询自己的本机地址方式如下

    2024年02月01日
    浏览(33)
  • 从零开始,手把手教你实现基于 Websocket 的微服务

    Websocket 协议是为了解决 HTTP 协议缺陷而产生的一种通信协议,它能够在客户端和服务器之间建立持久性的连接,并且允许双向通信。 HTTP 协议的请求与响应模式,其实并不适合实时通信的场景。比如聊天室、在线游戏等应用,都需要实时地推送消息到客户端,而 HTTP 协议则需

    2024年02月11日
    浏览(33)
  • 手把手教你从零搭建ChatGPT网站AI绘画系统,(SparkAi系统V6)GPTs应用、DALL-E3文生图、AI换脸、垫图混图、SunoAI音乐生成

    SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型+国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GPTs、GPT语音对话、GPT-4模型、GPT联网提问、DALL-E

    2024年04月17日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包