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/工程名/book | HTTP请求POST | 表示要添加一个图书 |
PUT请求 | 对应 | 修改 |
http://ip:port/工程名/book/1 | HTTP请求PUT | 表示要修改id为1的图书信息 |
DELETE请求 | 对应 | 删除 |
http://ip:port/工程名/book/1 | HTTP请求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操作,并且在完成相应的操作后需要进行查询操作,看看是否操作成功