springboot之RESTful接口与Swagger

一、RESTful

GET获取资源、POST新建资源、PUT更新资源、DELETE删除资源。

RESTful两大特性

1、安全性:GET请求不会引起资源本身改变。

2、幂等性:对一个接口请求和多次请求返回的资源应该一致。

2xx:成功

4xx:客户端错误。

5xx:服务器错误。

URI中不要包含动词

通过使用PathVariable注解获取{id}

@GetMapping("/user/{id}")
    public String getUserById(@PathVariable int id){
        System.out.println(id);
        return "根据ID获取用户信息";
    }

二、Swagger

用于生成、描述、调用和可视化RESTful风格的Web服务。

配置方法

添加包。这里使用到的swagger2的版本是2.9.2记得把springboot的版本改成2.5.6!!!

<!-- swagger2相关功能       -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!--  swagger2ui      -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

创建SwaggerConfig.java文件,专门放在config包下。
在这里插入图片描述

把代码放进去就好了。
注意这里重写了addResourceHandlers方法

package com.example.hello.config;


import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;


//Spingboot中配置类必须要加注解
@Configuration
@EnableSwagger2
public class SwaggerConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

    /*
    * 配置swagger2相关Bean
    * */

    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com"))   //com包下所有API都交给Swagger2管理
                .paths(PathSelectors.any())
                .build();
    }

    /*
    * 此处主要是API文档页面显示信息
    * */
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("演示项目API")   //标题
                .description("演示项目")    //描述
                .version("1.0")
                .build();
    }


}

http://localhost:8080/swagger-ui.html/
然后就成功了

在这里插入图片描述

除此之外,还能给每个接口增加说明,需要到后端指定接口处去增加。

例如说,我在hello2这个方法增加了注解,要使用@ApiOperation("")注解

在这里插入图片描述

在swagger展示如下。在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/523816.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

东方博宜 1397. 完美的偶数?

东方博宜 1397. 完美的偶数&#xff1f; 解题思路&#xff1a; 1 读取n个数存到数组里面 2 遍历数组中的每个数&#xff1a;判断每个数是否为偶数位&#xff1b;判断每个数的每个数位是否为偶数。 细节&#xff1a;for循环里面定义的变量只能在for循环内使用。 在遍历数组中的数…

就业班 第二阶段(python) 2401--4.7 day3 python3 函数

八、文件操作 1、读取键盘输入 input 获取标准输入&#xff0c;数据类型统一为字符串 #!/usr/bin/python # -*- coding: UTF-8 -*- str input("请输入&#xff1a;") print&#xff08;"你输入的内容是: ", str&#xff09; 这会产生如下的对应着输入的…

使用阿里云服务器可以做什么?太多了

阿里云服务器可以干嘛&#xff1f;能干啥你还不知道么&#xff01;简单来讲可用来搭建网站、个人博客、企业官网、论坛、电子商务、AI、LLM大语言模型、测试环境等&#xff0c;阿里云百科aliyunbaike.com整理阿里云服务器的用途&#xff1a; 阿里云服务器活动 aliyunbaike.com…

nvm安装node方便版

直接去node官网&#xff08;Index of /download/release/&#xff09;下载以前版本&#xff0c;放到nvm的安装路径下&#xff08;示例&#xff1a;C:\Users\Administrator\AppData\Roaming\nvm&#xff09;&#xff0c;以下图命名方式。 运行命令即可使用 如果报错npm不是外部或…

每日一题(leetcode31):下一个排列-思维

思路&#xff1a;从后往前找到第一个nums[i-1]>nums[i] 然后从后往前(len-1 -->i(包含))找到第一个大于nums[i-1]的数&#xff0c;与nums[i-1]交换&#xff0c;然后对下标区间为[i,len-1]的元素进行排序。 class Solution { public:void nextPermutation(vector<in…

ensp 通过cloud连接交换,通过本机直连telnet交换机

#连接图 #cloud配置 绑定本机一个虚拟网卡&#xff0c;勾选双向通信&#xff0c;这样就可以通过真机直接telent到交换机 #交换机配置 #需要将管理口ip配置为绑定的虚拟网卡同网段的IP&#xff0c;便于直接链接 system-view sysname s5700 undo info-center en telnet server…

Q1剧集市场复盘:2024爱优腾谁在领跑国产剧市场?

2024年Q1剧集市场的成绩单出炉了。 复盘2024年第一季度剧集市场&#xff0c;可以用“生机勃勃”四个字来形容&#xff0c;虽然和去年相比&#xff0c;今年的第一季度缺少了《狂飙》这样的头部大爆款&#xff0c;但市场大盘走势向好。 根据灯塔专业版统计&#xff0c;2024Q1剧…

算法-数论-蓝桥杯

算法-数论 1、最大公约数 def gcd(a,b):if b 0:return areturn gcd(b, a%b) # a和b的最大公约数等于b与a mod b 的最大公约数def gcd(a,b):while b ! 0:cur aa bb cur%bpassreturn a欧几里得算法 a可以表示成a kb r&#xff08;a&#xff0c;b&#xff0c;k&#xff0c…

论大数据服务化发展史

文章目录 引言正文单一指令阶段脚本化阶段用户界面操作阶段大模型AIOPS阶段总结 引言 一直想写一篇服务化相关的文章&#xff0c;那就别犹豫了现在就开始吧 正文 作为大数据基础架构工程师&#xff0c;业界也笑称“运维Boy”&#xff0c;日常工作就是在各个机器上部署以及维…

2024 年广东省职业院校技能大赛(高职组)“云计算应用”赛项样题 3

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件…

C语言文件操作1

1.文件的基础知识 ⚀文件 ▶︎概念◀︎ 文件是指存储在外部存储器上的数据集合。 常见的有&#xff1a;磁盘、U盘等等。 ▶︎作用◀︎ 保存数据 ▶︎文件名◀︎ 文件是指文件的标识符号&#xff0c;每个文件都有一个文件名。 文件名主要由三部分组成:文件路径文件名字文件后…

JSP课设:学校招生系统(附源码+调试)

Java web学校招生系统 Java web学校招生系统功能概述 &#xff08;1&#xff09;登录模块&#xff1a;学校招生系统提供管理员和考生两者登录角色&#xff0c;分别对应不同的功能&#xff0c;登录信息存储在数据库中。 &#xff08;2&#xff09;前台浏览&#xff1a;学校招生…

医药行业痛点以及OKR解决方案

一、背景 随着医药行业的快速发展和市场竞争的加剧&#xff0c;企业面临着前所未有的挑战和机遇。为了在激烈的市场竞争中立于不败之地&#xff0c;某知名医药企业决定引入OKR&#xff08;Objectives and Key Results&#xff0c;目标与关键成果&#xff09;管理模式&#xff0…

【多线程】进程process(进程的管理+进程的调度+分时复用(并发)+PCB)

文章目录 进程一、计算机的组成&#xff1a;1.指令&#xff08;Instruction&#xff09; 二、浅谈操作系统1.日常的操作系统1.操作系统内核内核&#xff1a;进程的隔离性&#xff1a; 三、进程&#xff08;process&#xff09;1.进程的概念2.进程的管理1.管理的两个角度&#x…

NAT网络地址转换原理解析

NAT&#xff08;Network Address Translation&#xff09;&#xff0c;即网络地址转换&#xff0c;是一种在1994年提出的地址转换技术。它的主要目的是在本地网络中使用私有地址&#xff0c;在连接互联网时转而使用全局IP地址。NAT实际上是为解决IPv4地址短缺而开发的技术。NAT…

基于javassm实现的旅游景点线路网站

开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.…

基于JAVA+SpringBoot+UniApp+Vue的前后端分离的手机移动端图书借阅平台

一、项目背景介绍&#xff1a; 随着社会信息化的快速发展&#xff0c;图书馆作为知识传播和学术研究的重要场所&#xff0c;扮演着不可替代的角色。然而&#xff0c;传统的图书馆借阅方式存在一些问题&#xff0c;如人工操作复杂、排队等待时间长、信息交流不便等。为了提高用户…

STL库 —— vector 的编写

一、成员变量 二、容量成员 2.1 size 函数 我们在定义私有成员时就会发现&#xff0c;其中 _finish 相当于 string 中的 size 的地址&#xff0c; _endofstorage 相当于 string 中的 capacity 的地址&#xff0c;所以 size 函数和 capacity 函数其实基本没有改变。 size_t s…

蓝桥杯备赛合集

蓝桥杯 - 穿越雷区 解题思路&#xff1a; dfs 方法一&#xff1a; import java.util.Scanner;public class Main {static char[][] a;static int[][] visited;static int[] dx { 0, 1, 0, -1 };static int[] dy { 1, 0, -1, 0 };static long min Long.MAX_VALUE;static …

DtDay1

1.导图 2.mywidget.cpp源码 #include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//设置窗口大小this->resize(900,700);//设置窗口标题this->setWindowTitle("玄冥科技");this->setWindowIcon(QIcon("C:\\Users…