L05_SpringBoot入门

SpringBoot入门

  • 浅谈Restful风格
  • 代码实现(并且通过Apifox进行接口测试[以传入json格式数据为例])
    • 首先创建一个SpringBoot项目,pom文件包引入如下
    • 下面在新建src创建com.ndky.controller包,然后再在包内创建一个HelloController类
    • 编写(一个简易的restful风格的代码)
      • 编写GET请求代码
      • apifox测试(请求的ip和port已设置在本地环境中)
      • api测试
      • 编写POST请求代码
      • api测试(json格式)
      • 编写PUT请求代码
      • 编写DELETE请求代码
  • 总结

浅谈Restful风格

Restful是一种设计风格。对于我们Web开发人员来说。就是使用一个url地址表示一个唯一的资源。然后把原来的请求参数加入到请求资源地址中。然后原来请求的增,删,改,查操作。改为使用HTTP协议中请求方式GET、POST、PUT、DELETE表示。

把请求参数加入到请求的资源地址中
原来的增,删,改,查。使用HTTP请求方式,POST、DELETE、PUT、GET分别一一对应。

GET请求对应查询
http://ip:port/工程名/book/1(http://ip:port/工程名/book)HTTP请求GET表示要查询id为1的图书(表示查询全部的图书)
POST请求对应添加
http://ip:port/工程名/bookHTTP请求POST表示要添加一个图书
PUT请求对应修改
http://ip:port/工程名/book/1HTTP请求PUT表示要修改id为1的图书信息
DELETE请求对应删除
http://ip:port/工程名/book/1HTTP请求DELETE表示要删除id为1的图书信息

原文链接:https://blog.csdn.net/weixin_51429303/article/details/114577031

代码实现(并且通过Apifox进行接口测试[以传入json格式数据为例])

首先创建一个SpringBoot项目,pom文件包引入如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.4</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.ndky</groupId><artifactId>HelloWorld</artifactId><version>0.0.1-SNAPSHOT</version><name>HelloWorld</name><description>HelloWorld</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

下面在新建src创建com.ndky.controller包,然后再在包内创建一个HelloController类

在这里插入图片描述

编写(一个简易的restful风格的代码)

编写GET请求代码

请求data中所有数据,如果data为空就返回"Hello SpringBoot"字符串
@RequestMapping(“/hello”) 用于设置该controller中的所有请求的根请求路径为/hello

package com.ndky.helloworld.controller;import org.springframework.web.bind.annotation.*;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** @author LikeYouDo* @date 2023/10/12 15:17*/@RestController
@RequestMapping("/hello")
public class HelloController {List<Map<String, Object>> data = new ArrayList<>();/*** 获取所有数据** @return*/@GetMapping()public String getHello() {return data.isEmpty() ? "Hello SpringBoot" : "select data: " + data;}
}

apifox测试(请求的ip和port已设置在本地环境中)

未添加数据
在这里插入图片描述已添加数据
在这里插入图片描述

根据id查询数据,URI中带需要查询的id值

    /*** 根据id查询数据** @param id* @return*/@GetMapping("/{id}")public String getHelloById(@PathVariable("id") Integer id) {if (id != null) {for (Map<String, Object> datum : data) {if (datum.get("id").equals(id)) {return datum.toString();}}}return "id不存在";}

api测试

id存在
在这里插入图片描述
id不存在
在这里插入图片描述

编写POST请求代码

添加数据,请求体中携带数据

    /*** 添加一个新的数据** @param value* @return*/@PostMapping()public String postHello(@RequestBody HashMap<String, Object> value) {data.add(value);return "add data: id=" + value.get("id") + ", name=" + value.get("name");}

api测试(json格式)

添加的数据

{"id": 1,"name": "王五"
}

在这里插入图片描述
通过get请求查询验证
在这里插入图片描述数据成功添加

编写PUT请求代码

URI中带需要查询的id值,请求中携带需要修改的数据,修改存入的id值对应的数据

    /*** 根据id修改name** @param value* @return*/@PutMapping("/{id}")public String putHello(@PathVariable Integer id, @RequestBody HashMap<String, Object> value) {if (value.get("name")==null){return "没有传入name值";}if (id != null) {for (Map<String, Object> datum : data) {if (datum.get("id").equals(id)) {datum.replace("name", value.get("name"));return "update data: id=" + datum.get("id") + ", name=" + datum.get("name");}}}return "id不存在";}

id存在
在这里插入图片描述验证是否成功
在这里插入图片描述id不存在或传入错误参数
在这里插入图片描述
在这里插入图片描述

编写DELETE请求代码

URI中带需要查询的id值,删除id对应的数据

    /*** 根据id删除数据* @param id* @return*/@DeleteMapping("/{id}")public String deleteHello(@PathVariable Integer id) {Map<String, Object> tmp = null;if (id != null) {for (Map<String, Object> datum : data) {if (datum.get("id").equals(id)) {tmp = datum;}}}if (tmp!=null){data.remove(tmp);return "delete data: id=" + id;}return "id不存在";}

id存在
在这里插入图片描述
验证
在这里插入图片描述

id不存在
在这里插入图片描述

总结

由上述代码可得,Resatful风格代码的关键在于URI地址可以相同,然后通过不同的请求方式来完成对应的CRUD操作,并且在完成相应的操作后需要进行查询操作,看看是否操作成功

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

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

相关文章

智能工厂:APS高级计划排程系统成为了制造业建设智能工厂的核心必要需求

近年来&#xff0c;中国经济受到了许多因素的影响&#xff0c;例如新冠疫情冲击和国内外经济环境的巨大变化&#xff0c;随着我国人口红利的减少和人力成本逐步的增加&#xff0c;不论是中大型或小微制造企业为了提高市场竞争力并降低生产成本&#xff0c;都纷纷开始规划建设数…

C++QT-day6

/*定义一个基类 Animal&#xff0c;其中有一个虛函数perform&#xff08;)&#xff0c;用于在子类中实现不同动物的表演行为。*/ #include <iostream> using namespace std; class Animal //封装Animal类&#xff08;基类&#xff09; { private:string person; public:A…

Linux内存管理 (2):memblock 子系统的建立

前一篇&#xff1a;Linux内存管理 (1)&#xff1a;内核镜像映射临时页表的建立 文章目录 1. 前言2. 分析背景3. memblock 简介3.1 memblock 数据结构3.2 memblock 接口 4. memblock 的构建过程 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者…

Vue绑定样式

一、绑定class样式 语法格式&#xff1a; :class "属性名" &#xff08;一&#xff09;字符串写法 该写法适用于样式的类名不确定&#xff0c;需要动态指定的场景 我们用如下的CSS样式进行操作演示 我们要完成点击按钮改变CSS样式的操作&#xff0c;如下图代码所…

C# 中大小端Endian

大小端可以找下资料很多&#xff0c;都是文字的。我每次遇到大小端问题就会搜资料&#xff0c;总是记不住。我自己用用图片记录一下&#xff0c;以备直观的从内存中看到。 在C#中可以用BitConverter.IsLittleEndian来查询。 几个数字在内存中 我们来观察一下&#xff0c;我的…

js获取当前时间

// 格式化日对象 (获取当前时间) export function timeFormat() {var date new Date();var sign2 ":";var year date.getFullYear(); // 年var month date.getMonth() 1; // 月var day date.getDate(); // 日var hour date.getHours(); // 时var minutes dat…

Burstormer论文阅读笔记

这是CVPR2023的一篇连拍图像修复和增强的论文&#xff0c;一作是阿联酋的默罕默德 本 扎耶得人工智能大学&#xff0c;二作是旷视科技。这些作者和CVPR2022的一篇BIPNet&#xff0c;同样是做连拍图像修复和增强的&#xff0c;是同一批。也就是说同一个方向&#xff0c;22年中了…

RecyclerView 空白区域点击事件

在项目中使用RecyclerView展示列表数据&#xff0c;用了GridLayoutManager&#xff0c;在遇到item个数不满足一行时&#xff0c;会在页面右侧透出空白位&#xff0c; 如下图所示. 目前点击空白位是没有点击响应事件的&#xff0c;我们想实现点击响应以扩大用户可以进入LandingP…

小程序中如何设置所服务地区的时区

在全球化的背景下&#xff0c;小程序除了在中国使用外&#xff0c;还为海外的华人地区提供服务。例如我们采云小程序为泰国、阿根廷、缅甸等国家的商家就提供过微信小程序。这些商家开通小程序&#xff0c;为本地的华人提供服务。但通常小程序的开发者/服务商位于中国&#xff…

Facebook广告账户被封?这份防封及申诉指南收好

Facebook广告是海外营销的一大利器&#xff0c;但是随着互联网的发展&#xff0c;有部分不法分子正在利用他进行盈利&#xff0c;导致Facebook官方安全审核日益严格&#xff0c;不少卖家遭遇封号问题&#xff01;这篇文章就来教你如何更好地管理 Facebook广告帐户&#xff0c;实…

Maven下载与文件配置

文章目录 官网下载相应文件修改配置文件设置环境变量 官网下载相应文件 https://maven.apache.org/ 点击Download ,找到Files 下载好了&#xff0c;请解压&#xff0c;放在你需要存储的位置&#xff01; 修改配置文件 打开解压的文件&#xff1a; 在conf 下有一个setting…

Stable diffusion 用DeOldify给黑白照片、视频上色

老照片常常因为当时的技术限制而只有黑白版本。然而现代的 AI 技术,如 DeOldify,可以让这些照片重现色彩。 本教程将详细介绍如何使用 DeOldify 来给老照片上色。. 之前介绍过基于虚拟环境的 基于DeOldify的给黑白照片、视频上色,本次介绍对于新手比较友好的在Stable diff…

Webmin远程命令执行漏洞复现

文章目录 Webmin_1.910_rce(CVE-2019-15107)漏洞编号漏洞描述影响版本漏洞评级利用方法&#xff08;利用案例&#xff09;漏洞挖掘加固建议参考信息漏洞分类 Webmin_1.910_rce(CVE-2019-15107) 漏洞编号 CVE-2019-15107 漏洞描述 Webmin是一个用于管理类Unix系统的管理配置…

5G安卓核心板-MT6833/MT6853核心板规格参数

随着智能手机的不断发展&#xff0c;芯片技术在推动手机性能和功能方面发挥着关键作用。MT6833和MT6853安卓核心板是两款高度集成的基带平台&#xff0c;为LTE/5G/NR和C2K智能手机应用提供强大的处理能力和多样化的接口。 这两款安卓核心板都集成了蓝牙、FM、WLAN和GPS模块&…

什么是React的虚拟DOM(Virtual DOM)?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

PHP 自习室空位查询系统mysql数据库web结构apache计算机软件工程网页wamp计算机毕业设计

一、源码特点 PHP 自习室空位查询系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 php 自习室空位查询系统1 代码 https://download.csdn.net/download/qq_41221322/…

ESP8266 WiFi物联网智能插座—下位机软件实现

目录 1、软件架构 2、开发环境 3、软件功能 4、程序设计 4.1、初始化 4.2、主循环状态机 4.3、初始化模式 4.4、配置模式 4.5、运行模式 4.6、重启模式 4.7、升级模式 5、程序功能特点 5.1、日志管理 5.2、数据缓存队列 本篇博文开始讲解下位机插座节点的MCU软件…

JVM第三讲:JVM 基础-字节码的增强技术详解

JVM 基础-字节码的增强技术详解 本文是JVM第三讲&#xff0c;JVM 基础-字节码的增强技术。在上文中&#xff0c;着重介绍了字节码的结构&#xff0c;这为我们了解字节码增强技术的实现打下了基础。字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术…

Linux Shell 实现一键部署vmtools

VMware Tools 简介 VMware Tools 中包含一系列服务和模块&#xff0c;可在 VMware 产品中实现多种功能&#xff0c;从而使用户能够更好地管理客户机操作系统&#xff0c;以及与客户机操作系统进行无缝交互。 VMware Tools 具备以下功能&#xff1a; 将消息从主机操作系统传递…

Floyd-Warshall最短路径(C++,例题:pta大众情人)

Floyd-Warshall算法是一种用于求解所有点对之间最短路径的动态规划算法。它可以处理带权有向图或无向图&#xff0c;但是不能处理带负环的图。 算法步骤如下&#xff1a; 1. 初始化一个nn的矩阵D&#xff0c;其中D[i][j]表示从顶点i到顶点j的最短路径长度&#xff0c;如果i和…