RESTful风格请求映射
系统要求
Java 8+
springBoot2.5 +
创建springBoot项目工程
编写HomeController类
package com.xiang.controller;
import org.springframework.web.bind.annotation.*;
/**
* Created by IntelliJ IDEA.
* User: xiang
* Date: 2021/10/13 14:22
*/
@RestController
public class HomeController {
@RequestMapping("/info")
public String info() {
return "info";
}
@GetMapping("/info")
public String getInfo() {
return "getInfo()";
}
@PostMapping("/info")
public String postInfo() {
return "postInfo()";
}
@PutMapping("/info")
public String putInfo() {
return "putInfo()";
}
@DeleteMapping("/info")
public String delInfo() {
return "delInfo()";
}
}
编写application.yml文件
spring:
mvc:
hiddenmethod:
filter:
#手动开启Restful风格
enabled: true
编写index.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
<style>
input{
margin-top: 10px;
}
</style>
</head>
<body>
<h2>
index
</h2>
<form action="/info" method="get">
<input type="submit" value="get提交">
</form>
<form action="/info" method="post">
<input type="submit" value="post提交">
</form>
<!--当使用其他的提交方式时,提交方式必须是post提交-->
<form action="/info" method="post">
<!--
当我们使用form默认不支持的提交方式时,需要写这样一个标签
<input name="_method" type="hidden" value="DELETE">
一般会将该标签设为隐藏
name是固定的
value需要写提交方式
-->
<input type="hidden" name="_method" value="delete">
<input type="submit" value="delete提交">
</form>
<form action="/info" method="post">
<input type="hidden" name="_method" value="put">
<input type="submit" value="put提交">
</form>
</body>
</html>
主程序运行
package com.xiang;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootRestfulApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootRestfulApplication.class, args);
}
}
运行结果
RESTful(一种架构风格)
REST ( Representational State Transfer ) 指的是一组架构约束条件和规范。
满足这些约束条件和规范的应用程序就是 RESTful。
REST的核心是面向资源,降低开发的复杂性,提高系统的可伸缩性。
REST提出设计概念和准则为:
网络上的所有事物都可以被抽象为资源 每个资源都有唯一的资源标识,对资源的操作不会改变这些标识 统一接口,所有的数据的元操作,即CRUD
GET (SELECT):从服务器取出资源 (一项或多项)。
POST (CREATE):在服务器新建一个资源。
PUT (UPDATE):在服务器更新资源 (客户端提供完整资源数据)。
PATCH (UPDATE):在服务器更新资源 (客户端提供需要修改的资源数据)。
DELETE (DELETE):从服务器删除资源。
1.Rest与Restful
1).REST(Representational State Transfer) 表现状态转换【架构样式的网络系统】
2).RESTFUL是一种网络应用程序的设计风格和开发方式
3).REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是Restful
2.Restful特点
1).每一个URI代表1种资源;
2).CRUD(POST GET PUT DELETE)
3).通过操作资源的表现形式来操作资源
4).资源的表现形式是XML或者HTML
5).客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息
3.Restful使用*
1).URL设计
A).动宾结构(动词+宾语[名词])
GET 获取 安全
POST 创建 不安全
PUT[PATCH] 更新【X-HTTP-Method-Override】 不安全
DELETE 删除【X-HTTP-Method-Override】 不安全
B).使用
GET : /users - 获取用户列表
GET : /users/1 - 获取 Id 为 1 的用户
POST : /users - 创建一个用户
PUT : /users/1 - 替换 Id 为 1 的用户
PATCH : /users/1 - 修改 Id 为 1 的用户
DELETE : /users/1 - 删除 Id 为 1 的用户
4.概念*
1).SOA : 面向服务的架构 【组件模型】【将服务通过定义良好的接口和契约联系起来】
2).SOAP : 简单对象访问协议 一种数据交换协议规范,是一种轻量的、简单的、基于XML的协议的规范
3).RPC : 远程过程调用协议 从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(服务)并得到返回的结果【调用本地函数/方法一样去调用远程的函数/方法】
4).微服务:
A).独立的进程的方式存在,互相之间并无影响
B).接口方式更加通用化
C).倾向于分布式去中心化的部署方式,在互联网业务场景下更适合