后端之路第二站(正片)——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、路径参数不支持中文值传递

下面这两个是错的

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

下面这是对的

下一篇讲设置【响应】

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初始MyBatis ,详细步骤运行第一个MyBatis程序,同时对应步骤MyBatis底层剖析

1. 初始MyBatis ,详细步骤运行第一个MyBatis程序,同时对应步骤MyBatis底层剖析 文章目录 1. 初始MyBatis ,详细步骤运行第一个MyBatis程序,同时对应步骤MyBatis底层剖析每博一文案2. 前沿知识2.1 框架(framework&#…

剪画小程序:3个方法:告诉你如何将普通的照片转换成动漫二次元风格!

Hello!亲爱的小伙伴们! 你是否还在纠结于自己的自拍太普通,每次分享到社交账号上都觉得平平无奇,引不起波澜? 假如,你和朋友们一起出去玩,大家都开心地拍着自拍。你看着自己的照片&#xff0c…

蓝桥杯-数三角(ac代码时间复杂度分析)

问题描述 小明在二维坐标系中放置了 ( n ) 个点,他想在其中选出一个包含三个点的子集,这三个点能组成三角形。然而这样的方案太多了,他决定只选择那些可以组成等腰三角形的方案。请帮他计算出一共有多少种选法可以组成等腰三角形&#xff1f…

WXML模板语法-事件绑定

一、 1.事件 事件是渲染层到逻辑层的通讯方式,通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理 2.小程序中常用的事件 3.事件对象的属性列表 当事件回调触发的时候,会收到一个事件对象event,其属性为&#x…

在uni-app 插件市场下载 SKU 插件之后,引入项目报错问题

引入&#xff1a; git 提交报错&#xff1a; 原因&#xff1a;项目使用了 eslint 语法检查 解决&#xff1a;禁用 eslint 语法规则 在<script> 标签下面添加 /* eslint-disable */ 重新提交即可

【网络技术】【Kali Linux】Wireshark嗅探(十四)QUIC(快速UDP互联网连接)协议报文捕获及分析

往期 Kali Linux 上的 Wireshark 嗅探实验见博客&#xff1a; 【网络技术】【Kali Linux】Wireshark嗅探&#xff08;一&#xff09;ping 和 ICMP 【网络技术】【Kali Linux】Wireshark嗅探&#xff08;二&#xff09;TCP 协议 【网络技术】【Kali Linux】Wireshark嗅探&…

移动硬盘容量消失无法读取的解决方案

在数字化时代&#xff0c;数据的存储和备份变得尤为重要。移动硬盘作为一种便捷、大容量的存储设备&#xff0c;受到许多人的青睐。然而&#xff0c;有时我们可能会遭遇这样的问题&#xff1a;移动硬盘不显示容量且无法访问。这种情况无疑给我们的数据存储和管理带来了巨大的困…

uniapp移动端骨架屏流程

1.使用微信开发者工具来生成骨架屏&#xff1b;在分窗模式下选择页面信息&#xff0c;下拉选择生成骨架屏&#xff1b;他会基于当前页面生成骨架屏的样式 点击确定&#xff1b; 会自动生成这两个文件&#xff1b;一个是html结构文件&#xff0c;一个是css样式文件。 然后把这两…

黄石首家Pearson VUE国际认证考试中心落户湖北理工学院

Pearson VUE 作为 Pearson 集团的专门从事计算机化考试服务的公司&#xff0c;到目前为止&#xff0c;已在全世界165 个国家授权了 4400 多个考试中心以及超过 230 家 PVUE 自有考试中心&#xff0c;其中在中国的有三百多个授权考点和 4 个自有考试中心。Pearson VUE 以其技术和…

LLaMa系列模型详解(原理介绍、代码解读):LLaMA 3

LLaMA 3 2024年4月18日&#xff0c;Meta 重磅推出了Meta Llama 3&#xff0c;Llama 3是Meta最先进开源大型语言模型的下一代&#xff0c;包括具有80亿和700亿参数的预训练和指令微调的语言模型&#xff0c;能够支持广泛的应用场景。这一代Llama在一系列行业标准基准测试中展示…

java学习四

Random 随机数 数组 静态初始化数组 数组在计算机中的基本原理 数组的访问 什么是遍历 数组的动态初始化 动态初始化数组元素默认值规则 Java内存分配介绍 数组在计算机中的执行原理 使用数组时常见的一个问题 案例求数组元素最大值 public class Test1 {public static void ma…

<工控><PLC>汇川Easy521系列PLC与汇川SV630N伺服进行EtherCat通讯的相关配置及指令编写

前言 本系列是关于PLC相关的博文&#xff0c;包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。 PLC品牌包括但不限于西门子、三菱等国外品牌&#xff0c;汇川、信捷等国内品牌。 除了PLC为主要内容外&#xff0c;PLC相关元器件如触摸屏…

【Unity3D美术】URP渲染管线学习01

扫盲简介 URP渲染管线是Unity3d提供的一种视觉效果更好的渲染模式&#xff0c;类似的还有Built RP&#xff08;默认最普通的渲染模式&#xff09;\ HDRP(超高清&#xff0c;对设备要求高)&#xff0c;视觉效果好&#xff0c;而且占用资源少&#xff01;成为主流渲染管线模式&a…

基于Docker部署GitLab环境搭建

文件在D:\E\学习文档子目录压缩\专项进阶&#xff0c;如ngnix,webservice,linux,redis等\docker 建议虚拟机内存2G以上 1.下载镜像文件 docker pull beginor/gitlab-ce:11.0.1-ce.0 注意&#xff1a;一定要配置阿里云的加速镜像 创建GitLab 的配置 (etc) 、 日志 (log) 、数…

成功案例(IF=7.4)| 代谢组+16s联合分析助力房颤代谢重构的潜在机制研究

研究背景 心房颤动&#xff08;AF&#xff09;是临床上最常见的持续性心律失常&#xff0c;具有显著的发病率和死亡率。高龄是房颤发病率、患病率和进展最显著的危险因素。与年龄在50-59岁之间的参与者相比&#xff0c;80-89岁之间的参与者患房颤的风险增加了9.33倍。目前尚不…

nss刷题(3)

1、[SWPUCTF 2021 新生赛]include 根据提示传入一个file后显示了关于flag的代码 这是一个文件包含&#xff0c;考虑php伪协议&#xff0c;构造payload&#xff1a; ?filephp://filter/readconvert.base64-encode/resourceflag.php 2、[SWPUCTF 2021 新生赛]Do_you_know_http …

Css 提高 - 获取DOM元素

目录 1、根据选择器来获取DOM元素 2.、根据选择器来获取DOM元素伪数组 3、根据id获取一个元素 4、通过标签类型名获取所有该标签的元素 5、通过类名获取元素 目标&#xff1a;能查找/获取DOM对象 1、根据选择器来获取DOM元素 语法&#xff1a; document.querySelector(css选择…

cocos 写 连连看 小游戏主要逻辑(Ts编写)算法总结

cocos官方文档&#xff1a;节点系统事件 | Cocos Creator 游戏界面展示 一、在cocos编译器随便画个页面 展示页面 二、连连看元素生成 2.1、准备单个方块元素&#xff0c;我这里就是直接使用一张图片&#xff0c;图片大小为100x100&#xff0c;锚点为&#xff08;0&#xff0…

ESP32基础应用之使用手机浏览器作为客户端与ESP32作为服务器进行通信

文章目录 1 准备2 移植2.1 softAP工程移植到simple工程中2.2 移植注意事项 3 验证4 添加HTML4.1 浏览器显示自己编译的html4.2 在使用html发数据给ESP324.3 HTML 内容4.4 更新 html_test.html 1 准备 参考工程 Espressif\frameworks\esp-idf-v5.2.1\examples\wifi\getting_sta…

PMapper:助你在AWS中实现IAM权限快速安全评估

关于PMapper PMapper是一款功能强大的脚本工具&#xff0c;该工具本质上是一个基于Python开发的脚本/代码库&#xff0c;可以帮助广大研究人员识别一个AWS账号或AWS组织中存在安全风险的IAM配置&#xff0c;并对IAM权限执行快速评估。 PMapper可以将目标AWS帐户中的不同IAM用户…