首页 > 其他分享 >【学习笔记】RestFul风格

【学习笔记】RestFul风格

时间:2023-02-26 18:25:10浏览次数:42  
标签:8080 方式 笔记 风格 http RestFul method localhost

RestFul风格

RestFul就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格,基于这种风格的软件可以更简洁,更有层次,更易于实现缓存等机制。

比如:

之前的风格的url:http://localhost:8080/method?name=admin&password=12356

RestFul风格:http://localhost:8080/method/admin/12345

对比之前的url,使用RestFul风格的url变得更加简洁

 

RestFul风格的功能

资源:互联网所有的事物都可以被抽象为资源

资源操作:使用POST、DELETE、GET、PUT 不同方法对资源进行操作

 

在传统方式操作资源:通过不同的参数来实现不同的效果,方法单一,只有post和get

使用RestFul操作资源:可以通过不同的请求方式来实现不同的效果

 

通过代码来测试RestFul风格

我们从前端获取两个参数,并将计算结果返回到前端

之前的方式:

@Controller
public class RestFulController {
​
    @RequestMapping("/add")
    public String test(int a, int b, Model model){
        int res = a+b;
        model.addAttribute("msg","计算结果是:"+res);
        return "hello";
    }
}

直接在方法中,传入参数,前端的url为:http://localhost:8080/springmvc/add?a=10&b=11

 

通过RestFul风格:

首先在要传入的参数前面加一个注解@PathVariable,然后从@RequestMapping注解中直接取参数,如下:@RequestMapping("/add/{a}/{b}")

@Controller
public class RestFulController {
​
    @RequestMapping("/add/{a}/{b}")
    public String test(@PathVariable int a,@PathVariable int b, Model model){
        int res = a+b;
        model.addAttribute("msg","计算结果是:"+res);
        return "hello";
    }
}

之前的url方式已经不可用

image-20230226174820857

现在的url:http://localhost:8080/springmvc/add/10/12

相当于把 10 赋值给a ,把12 赋值给b

 

除此之外,我们还可以指定访问的方式

在RequestMapping中有一个枚举类RequestMethod,里面有一些访问的方式,如 GET,POST等

public enum RequestMethod {
    GET,
    HEAD,
    POST,
    PUT,
    PATCH,
    DELETE,
    OPTIONS,
    TRACE;
​
    private RequestMethod() {
    }
}

在RequestMapping注解中,指定访问的方式

@RequestMapping(value="/add/{a}/{b}",method = RequestMethod.DELETE)

我们指定了访问方式为DELETE后,再去访问,会报错405

image-20230226175638014

请求方式为GET,而要求的为DELETE,所以会报405

除了这种方式指定访问方式之外,还有一些注解,可以用来指定访问方式

@GetMapping("/add/{a}/{b}")
@DeleteMapping
@PostMapping
@PutMapping

如果有多种方式,访问了一个url,他会自动匹配适合的方式

如果通过表单指定提交的方式,就会发现相同的url,直接访问是GET方式,提交表单是POST方式

 

RestFul风格主要可以保证程序的安全性,没有把程序中的参数暴漏在url中

标签:8080,方式,笔记,风格,http,RestFul,method,localhost
From: https://www.cnblogs.com/wztblogs/p/17157220.html

相关文章

  • Mybatis学习笔记
    1.Mybatis用来做什么?   对数据库的数据进行增删改查操作。2.如何进行增删改查?   配置文件/注解3.MyBatis完成操作需要的步骤?   编写接口方法->编写SQ......
  • 设计笔记
    设计笔记聚焦在编码设计数据结构、复现数据结构,对常见数据结构的要求熟练掌握,题目较少......
  • <学习笔记> 关于二项式反演
    1容斥原理的式子:\[|A1∪A2∪...∪An|=\sum_{1≤i≤n}|Ai|−\sum_{1≤i<j≤n}|Ai∩Aj|+...+(−1)^{n−1}×|A1∩A2∩...∩An|\]一般来说不会直接用容斥原理这个式子,而是......
  • Spring MVC学习笔记
    1.为什么要学SPringMVC    SpringMVC是Spring框架中关于Web开发的一部分2.要在其中学习什么?    Web开发的请求、响应数据(最基本);Rest风格;SSM整合;拦截器......
  • spring security笔记一
    创建SecurityConfig类,加上@Configuration注解添加授权方法:/***访问路径授权**@paramhttp*@return*@throwsException*/@BeanpublicSecurityFilterChainfil......
  • 【学习笔记】Segment Tree Beats 学习笔记
    前置知识:线段树常规操作的复杂度证明单点修改、查询线段树高为\(O(\logn)\),因此单点操作复杂度单次\(O(\logn)\),总复杂度\(O(q\logn)\)。区间修改、查询在懒标记......
  • 谷粒学院day01-06回顾笔记
    reviewday01-06day01day02day03day04day05day06......
  • python 的 Type Hint 类型标注学习笔记
    学习笔记,用于本人忘记知识点时回顾。int在变量后加int即可声明该变量为int类型,当调用该函数时,如果填入的参数不为int类型,则报错。函数名后加->int声明该函数......
  • 《分布式技术原理与算法解析》学习笔记Day23
    分布式数据复制我们在进行分布式数据存储设计时,通常会考虑对数据进行备份,以提高数据的可用性和可靠性,“数据复制技术”就是实现数据备份的关键技术。什么是数据复制技术?......
  • Python笔记--练习题(都来瞧一瞧,看一看嘞)
    利用Python对文件进行操作重新写入的文件如下图所示:统计学生成绩文件的最高分最低分和平均分Python如何统计英文文章出现最多的单词Python统计目录下的文件大小......