RESTful风格请求映射

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).倾向于分布式去中心化的部署方式,在互联网业务场景下更适合

posted @ 2021-10-13 15:10  阿向向  阅读(97)  评论(0编辑  收藏  举报