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

news2024/11/24 3:13:02

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

一、下载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.coloradmin.cn/o/1690095.html

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

相关文章

微信H5跳小程序 wx-open-launch-weapp ios显示且正常跳转,安卓不显示不报错解决方案

前提:在一切都正常(无报错,没有写法错误等)的情况下,出现这个问题: 去你的h5项目,用浏览器打开,在network随便找一个静态文件,在response响应标头中找找,是否有Content-Security-Policy这个头&…

vue2流星雨(可调角度)

新建StarBackground.vue组件 打开组件注释部分可以随机颜色 <template><div class"rain"><divv-for"(item,index) in rainNumber":key"index"class"rain-item"ref"rain-item":style"transform:rotate(…

【MySQL进阶之路 | 基础篇】触发器

1. 为什么要使用触发器 我们可能会遇到如下场景.我们有两个相互关联的表&#xff0c;如商品信息表与库存信息表.当我们向商品信息表添加一条记录时&#xff0c;为了保证数据完整性&#xff0c;也必须向库存信息表添加一条数据.我们就必须把这两个关联的操作写在程序里&#xf…

【APKtool】APKtool实现某瓣APP重签名

APP name 重打包 重打包完成 开始签名 apktool签名 使用 APKtool 或其他工具生成的签名文件与原始签名文件的区别主要在于它们使用的密钥和证书可能不同。当你使用 APKtool 对 APK 文件进行反编译、修改后再重新打包时&#xff0c;你通常需要使用一个新的密钥和证书对修改后…

机器人非线性控制方法——线性化与解耦

机器人非线性控制方法是针对具有非线性特性的机器人系统所设计的一系列控制策略。其中&#xff0c;精确线性化控制和反演控制是两种重要的方法。 1. 非线性反馈控制 该控制律采用非线性反馈控制的方法&#xff0c;将控制输入 u 分解为两个部分&#xff1a; α(x): 这是一个与…

计算机毕业设计 | springboot养老院管理系统 老人社区管理(附源码)

1&#xff0c;绪论 1.1 背景调研 养老院是集医疗、护理、康复、膳食、社工等服务服务于一体的综合行养老院&#xff0c;经过我们前期的调查&#xff0c;院方大部分工作采用手工操作方式,会带来工作效率过低&#xff0c;运营成本过大的问题。 院方可用合理的较少投入取得更好…

HTML5 + CSS3模拟庆余年中“五竹”的镭射眼动画特效

庆余年2已经火热开播了&#xff0c;据说反响强烈啊&#xff0c;不知道这一部里面&#xff0c;五竹的镭射眼会不会表现出来&#xff0c;我还挺想看看他的镭射眼的&#xff0c;我看到底有没有杀死剧中的庆帝。 回想第一部&#xff0c;我都快记不清那是几年前开播的了&#xff0c;…

Ubuntu 安装 LibreOffice

1. 删除预安装的LibreOffice Ubuntu 和其他的 Linux 发行版带有预安装的 LibreOffice。这可能不是最新的&#xff0c;这是因为发行版有特定的发行周期。在进行新安装之前&#xff0c;你可以通过以下命令删除 Ubuntu 及其衍生发行版中的的旧版本。 sudo apt remove –purge li…

VScode SSH连接远程服务器报错

一、报错 通过VScode SSH插件远程连接服务器&#xff0c;输入密码后没有连接成功&#xff0c;一直跳出输入密码界面&#xff0c;在输出界面里&#xff0c;一直是Waiting for server log或者是显示Cannot not find minimist 二、处理 &#x1f431;&#xff1a; 这个时候应该…

安全工程师考试摸拟试题

安全工程师考试摸拟试题安全工程师是指在工程项目中负责安全管理和安全技术服务的专业人员。他们需要具备扎实的理论知识和丰富的实践经验&#xff0c;能够有效预防和控制各类安全风险… 1 安全工程师考试摸拟试题 安全工程师是指在工程项目中负责安全管理和安全技术服务的专业…

Vue开发实例(十三)用户登录功能

使用Vue实现登录具有以下几个好处&#xff1a; 响应式界面&#xff1a;Vue框架的响应式特性可以帮助开发者轻松地实现用户登录界面的交互效果&#xff0c;包括表单验证、实时错误提示等&#xff0c;从而提升用户体验。组件化开发&#xff1a;Vue框架支持组件化开发&#xff0c;…

pillow学习3

Pillow库中&#xff0c;图像的模式代表了图像的颜色空间。以下是一些常见的图像模式及其含义&#xff1a; L&#xff08;灰度图&#xff09;&#xff1a;L模式表示图像是灰度图像&#xff0c;每个像素用8位表示&#xff08;范围为0-255&#xff09;&#xff0c;0表示黑色&#…

国家开放大学-实验3:类、对象、方法和修饰符的使用

作业答案 联系QQ:1603277115 实验目的 通过本实验&#xff0c;了解和掌握类、方法以及各个修饰符的使用。 问题描述 基于面向对象思想和类的方式&#xff0c;创建一个计算金额的程序。 啤酒 3.5元/罐&#xff0c; 方便面 4.5元/包&#xff0c; 矿泉水 2.0 元/瓶。 优惠规…

【Linux】信号之信号的产生详解

&#x1f916;个人主页&#xff1a;晚风相伴-CSDN博客 &#x1f496;如果觉得内容对你有帮助的话&#xff0c;还请给博主一键三连&#xff08;点赞&#x1f49c;、收藏&#x1f9e1;、关注&#x1f49a;&#xff09;吧 &#x1f64f;如果内容有误的话&#xff0c;还望指出&…

Java入门基础学习笔记50——ATM系统

1、项目演示&#xff1b; 2、项目技术实现&#xff1b; 1&#xff09;面向对象编程&#xff1a; 每个账户都是一个对象&#xff0c;所以要设计账户类Account&#xff0c;用于创建账户对象封装账户信息。ATM同样是一个对象&#xff0c;需要设计ATM类&#xff0c;代表ATM管理系…

打破壁垒,实现多引擎3D内容轻量化交付|点量云流

随着应用场景的不断拓展&#xff0c;传统的视频流技术已难以满足日益复杂的需求。当前市场上的视频流解决方案支持的引擎基本是UE、Unitiy输出的exe3D应用&#xff0c;在处理WebGL等3D内容时&#xff0c;也存在诸多局限性&#xff0c;例如性能限制、跨平台兼容性问题、无法直接…

玩转OpenHarmony PID:教你打造两轮平衡车

简介 此次为大家带来的是OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;系统与PID控制算法相结合并落地的平衡车项目。 PID控制算法是一种经典的&#xff0c;并被广泛应用在控制领域的算法。类似于这种&#xff1a;需要将某一个物理量保持稳定的场合&…

java学习五

Java方法 方法是什么 方法Debug 方法定义注意点 方法总结 方法使用时的常见问题

电商内卷时代,视频号小店凭借一己之力“脱颖而出”

大家好&#xff0c;我是电商笨笨熊 今年618各大电商平台花样百出&#xff1b; 某宝更是直接取消了“预售”&#xff0c;从5月就开始进入618预热期&#xff1b; 不少玩家既开心又难过&#xff0c;市场如此内卷&#xff0c;618确实是个爆发期&#xff0c;但更多的需要不断压低…

数据量较小的表是否有必要添加索引问题分析

目录 前言一、分析前准备1.1、准备测试表和数据1.2、插入测试数据1.3、测试环境说明 二、具体业务分析2.1、单次查询耗时分析2.2、无索引并发查询服务器CPU占用率分析2.3、添加索引并发查询服务器CPU占用率分析 三、总结 前言 在一次节日活动我们系统访问量到达了平时的两倍&am…