后端之路第二站(正片)——SprintBoot之:设置请求接口

这一篇讲怎么简单结合模拟云接口,尝试简单的后端接接口、接受并传数据

一、下载Apifox接口文档软件

目前的企业都是采用前后端分离开发的,在开发阶段前后端需要统一发送请求的接口,前端也需要在等待后端把数据存到数据库之前,自己也要有一些数据用来测试前端页面的,那么这时就需要一个前后端开发合作的接口软件

黑马视频李推荐的是postman,但是我不建议,我强烈推荐Apifox!!

第一、他是中文的,别的是英文的

第二、操作方便,基本很多企业、团队都在用

下载很简单,应用商店、官网都可以下载安装

二、在“请求处理类”里写一个【请求方法】模拟接口

上一篇我讲过一个springboot的“请求处理类”怎么写,然后里面的一个“请求方法(请求接口)”大概格式就是这样:

@RestController
public class 请求处理类 {
   
    @RequestMapping("/方法名(接口路径名)")
    public String 方法名(接口路径名)(请求参数){
        //......发请求【后端】看到的
        return 发送请求后【前端】看到的
    }

}

然后别忘了到【启动类】重新启动运行一次spring boot

三、怎么用Apifox模拟请求?

点进软件,到【个人空间】—>【个人项目】

到【接口管理】—>【示例项目】—>【“+”添加接口】

然后就可以定义我们的接口,就跟填表格一样

然后点保存,然后到【文档】选【正式环境】点【运行】

这里这几个需要改一下:

然后点击【发送】就可以有结果了

前端看到的

后端看到的

四、post跟get有所不同

大部分步骤一样,还是创建请求方法,然后运行启动类,然后到Apifox创建接口.......

但是留意这里一点,post的请求参数是在请求体里的,所以在创建接口时,我们要把参数写到Body里

前端看到的

后端看到的

这里解释一下,这是根据http协议解析

当我们打开浏览器摁F12检测时,安装下面步骤可以看到我们发的请求详情

然后一个请求包含的信息有:

然后我们要的信息一般看【Headers】就够了

【Header】里我们会看到【Response Headers】和【Request Headers】

一个是【服务器响应端的请求头信息】一个是【发送请求端的请求头信息】

(提示:图片原作者来自于作者“良辰真不戳”)

那么【GET】方法的传过去的参数信息包含在【Request Headers】的【第一行】

然后【POST】方法的传过去的参数信息在【Payload】

所以我们在设置post接口的时候是在请求体里设置

五、前面是简单参数请求,现在是正式参数格式请求

但是学过前端的兄弟们会留意到,我们刚刚返回给前端的数据是什么鬼?

【name:岑梓铭 age:23】这样的数据根本没法用啊,而且数据量大的情况下更不可能给你【return "name:"+name+" age:"+age;】这样一个数据一个数据拼接传输,所以一个正常的参数应该是以【对象】的形式传送,所有信息包含在一个对象

那么就回到java知识,我们需要自定义好一个JavaBean类

(提示【Alt + insert】自动生成一个JavaBean类的构造方法、getter、setter等方法)

然后回到【请求处理类】,还是写一个【请求方法/请求接口】

此时参数就可以写一个,就是我们刚刚创建好的类就行了(别忘了导入类,这是两不同地方的文件)

然后,Apifox还是一样的逻辑设置好对应的接口,然后就能看到包着多个信息的对象显示出来

六、个别形式参数(数组、集合)留意点

假如前端传回多个同名参数的参数值,那就要用数组或者集合来获取

但是需要留意一点:集合参数需要在形参前面加一个【@RequestParam】

七、日期参数

后端接收前端时间参数时,要采用@DateTimeFormat(pattern="格式")的方式来规定好时间的格式,不能一会“xxxx年xx月xx日”一会“xxxx.xx.xx”一会“xxxx-xx-xx”,然后还有形参那里时间的变量类型是LocalDateTime

八、正式的JSON格式参数

(虽然我不知道为什么,但还是学一下吧)

有的情况可能前端会传JSON格式的参数给回后端(虽然我不知道到底有没有这种情况),那这个情况该怎么传参呢?

首先spring boot里面写代码,加一个@RequestBody,就可以把前端传过来的JSON参数值【封装进】我们写的类里

然后Apifox里直接按post接口流程来,但是这里得把“x-www-form-.....”改成“json”

然后注意!!这里可能会出现一个问题:返回代码500,说明后端这边出现问题

我检查半天愣是找不出半点问题,直到我一个后端的大佬朋友跟我说......我用来获取、封装这个JSON参数值的JavaBean类里缺少了【无参构造方法】!

如果正常的对象参数就没影响,但是如果要把JSON参数值封装进去,就一定得有【无参构造方法】

九、路径参数

除了 “域名?参数1=值1&参数2=值2” 这种方式传参,还有一种常见的是 “域名/路径/{参数值1}/{参数值2}” 这种直接拼接在路径的传递方式

那么这种传递参数的方式在spring boot代码编写方面要注意两点:

1、方法名 跟 @RequestMapping("...")的名不用一样,因为路径参数里@RequestMapping("...")绑定的是参数,而不是该方法

2、形参那,每个参数前要有一个“@PathVariable”来声明这个参数是在自路径那的

然后在Apifox接口设置处注意:

1、参数不是把形参名字接在路径、然后在参数填表格就行了

2、路径参数不支持中文值传递

下面这两个是错的

而是直接把参数值写在路径对应的参数处,然后只能传英文

下面这是对的

下一篇讲设置【响应】

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

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

相关文章

.NET快速实现网页数据抓取

网页数据抓取需求 本文我们以抓取博客园10天推荐排行榜第一页的文章标题、文章简介和文章地址为示例,并把抓取下来的数据保存到对应的txt文本中。 请求地址:https://www.cnblogs.com/aggsite/topdiggs 创建控制台应用 创建名为DotnetSpiderExercise的控…

Sentinel的授权规则详解

文章目录 1、授权规则1.1、基本规则1.2、如何获取origin1.3、给网关添加请求头1.4、配置授权规则 2、自定义异常结果2.1、异常类型2.2、自定义异常处理 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学…

python web自动话(⽂件上传和⽇期控件)

1.⽂件上传操作-input标签⽂件选择 我们有如下的文件上传的联系网站,我们可以定位到选择文件,但是点击选择文件无法定位到 我们可以看到这个选择文件的标签是input 我们直接使用send_keys进行图片上传 """""" import timefrom selenium import w…

D-Insar操作全程记录

前言 本实例ENVI版本5.6 裁剪 使用工具: 第一个界面: 输入基于上述两个文件画的研究区域。参考文件选择标准:area.shp是基于那个图像画的就选哪个。因为哨兵1的坐标不是地理坐标,故基于哨兵1话的shp需要选择参考影像。如果是…

STM32HAL(四)中断与NVIC解析

目录 中断 中断作用与意义 NVIC 中断向量表 基本概念 功能和作用 NVIC工作原理 STM32中断优先级 1. 优先级分组 2. 优先级设置 3. 中断服务程序执行顺序 4. 配置方法 STM32 NVIC的使用 1,设置中断分组 2,设置中断优先级 3,使…

vue使用driver.js引导并自定义样式和按钮

参考网址https://driverjs.com/docs/installation 安装 npm install driver.js 以下是1.3.1版本的基本使用方法 import { driver } from driver.js import driver.js/dist/driver.css mounted() {// 实例化driver对象const driverObj driver({showProgress: true,steps: …

【mysql】【docker】mysql8-互为主从

🌸🌸 Linux/docker-compose/mysql8 互为主从 优雅部署 🌸🌸 记录下两台Linux的mysql需要热备份,互为主从,后期加上keepalived实现高可用切换 参考博客:答 案 🌸 一、准备文件 这里…

一文了解基于ITIL的运维管理体系框架

本文来自腾讯蓝鲸智云社区用户:CanWay ITIL(Information Technology Infrastructure Library)是全球最广泛使用的 IT 服务管理方法,旨在帮助组织充分利用其技术基础设施和云服务来实现增长和转型。优化IT运维,作为企业…

k8s node NotReady后会发生什么?

K8s 是一种强大的容器编排和管理平台,能够高效地调度、管理和监控容器化应用程序;其本身使用声明式语义管理着集群内所有资源模型、应用程序、存储、网络等多种资源,Node 本身又属于 K8s 计算资源,上面承载运行着各种类型的应用程…

141.字符串:重复的字符串(力扣)

题目描述 代码解决 class Solution { public:// 计算字符串s的next数组&#xff0c;用于KMP算法void getNext(int *next, const string& s){int j 0; // j是前缀的长度next[0] 0; // 初始化next数组&#xff0c;第一个字符的next值为0for (int i 1; i < s.size(); …

TAS5711带EQ和DRC支持2.1声道的20W立体声8V-26V数字输入开环D类数字功放音频放大器

前言 数字功放很难搞&#xff0c;寄存器很多&#xff0c;要配置正确才有声音&#xff0c;要想声音好&#xff0c;要好好调整。 TAS5711出道很多年了&#xff0c;现在仍然在不少功放、音箱中能看到。 TAS5711特征 音频输入/输出 从 18V 电源向 8Q 负载提供 20W 功率 宽 PVDD…

深度学习之Tensorflow卷积神经网络手势识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手势识别是计算机视觉和人工智能领域的重要应用之一&#xff0c;具有广泛的应用前景&#xff…

常用生物信息学服务器推荐

1、超强性能&#xff0c;AMD 256核心&#xff0c;512线程&#xff0c;2.5TB满通道内存&#xff0c;200T硬盘 CPU&#xff1a;2颗128核心 2.25GHz AMD EPYC 9754 内存&#xff1a;24根96GB DDR5 4800MHz ECC REG 硬盘&#xff1a;1块1TB U.2 SSD系统盘1块15.36TB U.2热数据盘…

2024 年 电工杯(A题)大学生数学建模挑战赛 | 园区微电网风光储协调| 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 CS团队倾注了大量时间和心血&#xff0c;深入挖掘解决方案。通…

pip换源ubuntu

到THU网站上有给定的教程 https://mirrors.tuna.tsinghua.edu.cn/help/pypi/ 方法1 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package然后在https://pypi.org/project/nvidia-cublas-cu12/#files 里面搜索你的包名 方法2 python -m pip install --upg…

计算机毕业设计python+django医院住院挂号登记收费系统7ui9s

在该医院信息管理系统中&#xff0c;python技术可以给用户带来极大方便&#xff0c;其主要特点就是可以使用户学习起来方便、快捷&#xff0c;另一方面就是信息储存量也是非常大的&#xff0c;该功能主要被应用为数据库中进行查询和编程。并且该功能的数据应用比较灵活&#xf…

JVM优化之使用Jstack命令查找JVM死锁

JVM优化之使用Jstack命令查找JVM死锁 示例代码 public class DeadLockDemo {private static Object lock1 new Object();private static Object lock2 new Object();public static void main(String[] args) {new Thread(() -> {synchronized (lock1) {try {System.out.p…

新品 | Forge® 1GigE IP67工业相机助力智能农业、食品和饮料行业

近日&#xff0c;51camera的合作伙伴Teledyne FLIR IIS推出Forge 1GigE IP67,它是Forge系列的最新工业相机&#xff0c;旨在在恶劣的工业环境中运行&#xff0c;同时确保高效的生产能力。Forge 1GigE IP67致力于为工厂自动化提供先进成像系统的最新产品。 Forge 1GigE IP67相机…

Spring Cloud整合Sentinel

1、引入依赖 链接: 点击查看依赖关系 父pom <spring.cloud.version>Hoxton.SR12</spring.cloud.version> <spring.cloud.alibaba.version>2.2.10-RC1</spring.cloud.alibaba.version>Sentinel应用直接引用starter <dependency><groupId&…

IDEA软件和插件安装

安装IDEA版本&#xff1a;IDEA windows 2021.1.3 使用该版本的IDEA&#xff0c;并且安装下面插件后&#xff0c;个人认为非常好用&#xff0c;并且可以不用破解&#xff0c;无限使用企业版&#xff0c;了解具体方法可以留言或私信。 记录几个好用的IDEA插件&#xff0c;后续持…