Rest 优雅的url请求处理风格及注意事项

这篇具有很好参考价值的文章主要介绍了Rest 优雅的url请求处理风格及注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

😀前言
本篇博文是关于Rest 风格请求的应用和注意事项,希望能够帮助到您😊

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

Rest 风格请求处理

基本介绍

Rest 优雅的url请求处理风格及注意事项,SpringBoot,spring boot,spring,后端,java

REST:即Representational State Transfer。(资源)表现层状态转化。是目前流行的请求方式。它结构清晰, 很多网站采用

  1. Rest 风格支持(使用HTTP 请求方式动词来表示对资源的操作)
  2. 举例说明:
    ● 请求方式: /monster
    ● GET-获取怪物
    ● DELETE-删除怪物
    ● PUT-修改怪物
    ● POST-保存妖怪

SpringBoot Rest 风格应用实例

需求: 演示SpringBoot 中如何实现Rest 风格的增删改查

Rest 优雅的url请求处理风格及注意事项,SpringBoot,spring boot,spring,后端,java

应用实例

1.创建com/nlc/web/controller/MonsterController.java

@RestController
//@Controller
public class MonsterController {

    //等价的写法
    //@RequestMapping(value = "/monster",method = RequestMethod.GET)
    @GetMapping("/monster")
    public String getMonster() {
        return "GET-查询妖怪";
    }

    //等价写法
    //@RequestMapping(value = "/monster", method = RequestMethod.POST)
    @PostMapping("/monster")
    public String saveMonster() {
        return "POST-添加妖怪";
    }

    //等价写法
    //@RequestMapping(value = "/monster",method = RequestMethod.PUT)
    @PutMapping("/monster")
    public String putMonster() {
        return "PUT-修改妖怪~~";
    }

    //等价写法
    //@RequestMapping(value = "/monster", method = RequestMethod.DELETE)
    @DeleteMapping("/monster")
    public String delMonster() {
        return "DELETE-删除妖怪";
    }

}
  1. 使用Postman 完成测试, 请求url: http://localhost:8080/monster

Rest 优雅的url请求处理风格及注意事项,SpringBoot,spring boot,spring,后端,java

Rest 风格请求-注意事项和细节

1、客户端是PostMan 可以直接发送Put、delete 等方式请求,可不设置Filter
2、如果要SpringBoot 支持页面表单的Rest 功能, 则需要注意如下细节

注意
  1. Rest 风格请求核心Filter :HiddenHttpMethodFilter:浏览器form 表单只支持GET 与POST 请求,而DELETE、PUT等method 并不支持,Spring 添加了一个过滤器,可以将这些请求转换为标准的http 方法,使得支持GET、POST、PUT 与DELETE 请求。
  2. 、HiddenHttpMethodFilter 在将post 转成delete / put 请求时,是按_method 参数名来读取的。
  3. 表单请求会被HiddenHttpMethodFilter 拦截, 获取到表单_method 的值, 再判断是PUT/DELETE/PATCH(注释: PATCH 方法是新引入的,是对PUT 方法的补充,用来对已知资源进行局部更新:https://segmentfault.com/q/1010000005685904)。
  4. 如果要SpringBoot 支持页面表单的Rest 功能, 需要在application.yml 启用filter 功能,否则无效。
  5. 修改application.yml 启用filter 功能。
spring:
  mvc:
    static-path-pattern: /res/** #修改静态资源访问的路径/前缀
    hiddenmethod:
      filter:
        enabled: true #启用了HiddenHttpMethodFilter,开启页面表单的Rest功能
  web:
    resources:
      #修改/指定 静态资源的访问路径/位置
      static-locations: ["classpath:/img/","classpath:/META-INF/resources/",
                         "classpath:/resources/", "classpath:/static/", "classpath:/public/"]
                         #String[] staticLocations
  1. 修改对应的页面, 自己测试即可.
  • 创建src\main\resources\public\rest.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>rest</title>
</head>
<body>
<h1>测试rest风格的url, 来完成请求.</h1>
<form action="/monster" method="post">
    u: <input type="text" name="name"><br/>
    <!--    通过隐藏域传递_method 参数指定值-->
    <!--如果要测试delete, put , 就打开下面的注释-->
	<!-- <input type="hidden" name="_method" value="delete">-->
    <input type="submit" value="点击提交">
</form>
</body>
</html>
  1. 完成测试, 注意url 是localhost:8080/res/rest.html, 如果希望url 是localhost:8080/rest.html, 将application.yml 文件的static-path-pattern: /res/** 注销即可

Rest 优雅的url请求处理风格及注意事项,SpringBoot,spring boot,spring,后端,java

Rest 优雅的url请求处理风格及注意事项,SpringBoot,spring boot,spring,后端,java

小细节:思考

为什么这里return “GET-查询妖怪”, 返回的是字符串, 而不是转发到对应的资源文件?

解读:

因为@ResController 是一个复合注解, 含有@ResponseBody, 所以springboot 底层(springmvc), 在处理return “xxx” 时, 会以@ResponseBody 注解进行解析处理, 即返回字符串"xxx", 而不会使用视图解析器来处理。
我们可以试一下, 如果我们把@RestController 改成@Controller , 当你访问getMonster() 时, 如果你有xxx.html就会转发到xxx.html , 如果没有xxx.html , 就会报404。
提示: 在测试时, 将xxx.html 放在main\resources\public\xxx.html 进行测试, 并在application.yml 配置视图解析器

@GetMapping("/monster")
public String getMonster() {
	return "GET-查询妖怪";
}

—在application.yml 配置解析器-----

spring:
 mvc:
  view:
   suffix: .html   #后缀
   prefix: /    #前缀

—提示: 测试完后, 把代码恢复原状-----

使用Postman 进行测试, 可能出现的问题和解决方案分析.

Rest 优雅的url请求处理风格及注意事项,SpringBoot,spring boot,spring,后端,java

如何解决

spring:
  mvc:
#    static-path-pattern: /res/** #修改静态资源访问的路径/前缀
    hiddenmethod:
      filter:
        enabled: true #启用了HiddenHttpMethodFilter,开启页面表单的Rest功能
    view:       #配置视图解析器
      suffix: .html
      prefix: /        #这里是需要注意 prefix需要和当前的static-path-pattern一致。如果不一致就无法访问到静态资源

😄总结

  1. 不含有@ResponseBody时, springboot 底层(springmvc) 在处理return “xxx” 时是有顺序的。
  2. 如果配置了视图解析器,就按照视图解析器来定位;如果没有配置视图解析器,就看controller有没有/xxx
  3. HiddenHttpMethodFilter 在将post 转成delete / put 请求时,是按_method 参数名来读取的。

😁热门专栏推荐
SpringBoot篇
SpringBoot容器–注解的使用
以数据为中心的标记语言–yaml
SpringBoot 自动配置–常用配置
Spring Boot介绍–快速入门–约定优于配置
安装Lombok–Lombok的常用注解说明及使用方法
SpringBoot 依赖管理和自动配置—带你了解什么是版本仲裁

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞文章来源地址https://www.toymoban.com/news/detail-642214.html

到了这里,关于Rest 优雅的url请求处理风格及注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 原生js XMLHttpRequest发送 get post 请求 解决跨域 及 注意事项

    2、使用xhr发起GET请求 四个步骤: ①:创建 xhr对象 ②:调用 xhr的open()函数(open中传递两个参数,参数一是GET/POST请求方式,参数二是请求的URL地址) ③:调用 xhr.send()函数 ④:监听 xhr.onreadystatechange事件 xhr发起GET请求的完整代码 直接上示例 报错内容是这个 Failed to execute

    2024年02月16日
    浏览(39)
  • 使用接口调试软件(PostMan和APIPost)的技巧和注意事项(附加Get和Post请求区别)

    看完这篇文章,不仅能学会使用接口调试软件,还能 高效 的生成接口说明文档 首先,先来告诉各位Get请求和Post请求的区别 (记住:除了标注是Post的请求,其他都是Get请求) Get请求有: (1). form标签method=get (2). a标签 (3). Iink标签引入css (4). Script标签引入js文件 (5). img标签引入

    2024年04月12日
    浏览(33)
  • 学习Linux的注意事项(使用经验;目录作用;服务器注意事项)

    本篇分享学习Linux过程中的一些经验 Linux严格区分大小写 Linux中所有内容以文件形式保存 ,包括硬件,Linux是以管理文件的方式操作硬件 硬盘文件是 /dev/sd[a-p] 光盘文件是 /dev/sr0 等 对于设置需要写入文件,命令行的设置在重启之后就会失效,只有下入文件才可以保存下来 文

    2024年02月11日
    浏览(56)
  • 弱电线布线注意什么?弱电线布线的注意事项

    弱电 弱电一般是指直流电路或音频、视频线路、网络线路、电话线路,直流电压一般在36V以内。家用电器中的电话、电脑、电视机的信号输入(有线电视线路)、音响设备(输出端线路)等用电器均为弱电电气设备。 弱电线的种类如:电话线、网络线、有线电视线及音响线

    2024年02月07日
    浏览(32)
  • RabbitMQ开发注意事项

    在使用 RabbitMQ 进行消息队列的开发过程中,有一些注意事项需要牢记: 安全性:确保正确配置 RabbitMQ 实例的安全性。限制对 RabbitMQ 服务器的访问权限,并使用安全的认证机制(如用户名和密码)来保护连接。 错误处理:在消费者端,务必处理可能发生的异常或错误情况。

    2024年02月07日
    浏览(34)
  • postman调试注意事项

    Postman是一个强大的API调试工具,它可以帮助开发人员测试和调试API端点,以确保它们按预期工作。在使用Postman进行接口调试时,以下是一些注意事项和可能出现的问题,以及如何解决这些问题。 确保请求参数正确 在测试API接口时,确保您提供了正确的请求参数非常重要。

    2024年02月10日
    浏览(32)
  • 面试求职-面试注意事项

    面试技巧和注意事项有哪些? 面试是找工作过程中最重要的一个环节,因为面试成功,你才有可能得到一份工作。求职面试技巧有哪些呢?首先,我们来看看面试注意事项。 1、面试前有没有仔细了解过对应企业的情况,对方的企业文化、主营业务、未来的发展方向。如果跑过

    2024年02月09日
    浏览(25)
  • 低代码选型注意事项

    凭借着革命性的生产力优势,低代码技术火爆了整个IT圈。面对纷繁复杂的低代码和无代码产品,开发者该如何选择? 在研究低代码平台的年数上,本人已有3年,也算是个低代码资深用户了,很多企业面临低代码选型上的困难,选平台容易,换平台难。下面基于个人理解给大

    2024年02月03日
    浏览(47)
  • 算法竞赛个人注意事项

    浅浅记录一下自己在算法竞赛中的注意事项。 注意看数大小,数学库中的函数尽量加上 * 1.0 , 转成double,防止整型溢出。 , int 型相乘如果可能溢出,乘 * 1LL 。 数据范围大于1e6,注意用快读。 浮点数输入输出: 取模,注意取成负数的情况。 全 int ,但是数据太大,全转

    2024年02月09日
    浏览(37)
  • 钢网的清洗注意事项

    在smt贴片加工的生产过程中,由于钢网受重力影响会变形、定位可能会有不准确、支撑没有到位或者是设计等其他问题,这样的话在锡膏印刷的时候钢网和电路板的焊盘之间很难形成理想的密封状态,在SMT贴片加工的过程中,会引起焊锡膏在钢网跟电路板的空隙间挤出来,并

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包