zoukankan      html  css  js  c++  java
  • RestFul架构

    1.Restful是什么?

    restful不是一个技术,他只是一个规范,就像是阿里的类命名规范,我们要给dao接口的命名为:I**DAO,dao接口的实现类命名为**DAOImpl,变量名,方法名采用驼峰命名等相似,上面说的都是给类,方法,变量命名的规范,而Restful是给路径命名的规范

    2.为什么要使用Restful

    可能每个人,每个公司的请求路径的规范都是不一样的,这样的可能造成人为代码的请求的路径不太容易被人理解,所以就有人看到了这个缺陷。能不能把所有的请求的路径都给他规范起来,这样大家如果都知道这种规范,代码是不是更容易传播?

    http请求的方式常用的有get和post两种,但是其实还有put和delete,但是我们的html的form标签的method属性,只有get和post两种取值,因此在restful火起来之前,其他的两种请求,put和delete是没有什么用的。

    restful定义了这样的一个规范,所有程序的请求能不能统一的分为四大类,增删改查,原来的增删改查都是通过方法名来区分的,现在通过请求的方式来表示当前的操作是什么样的操作。

    请求方式 对应操作
    get 获取资源,查询操作
    post 添加资源,保存操作
    put 修改资源,修改操作
    delete 删除资源,删除操作

    下面我们学习使用restful风格的地址

    在 以往的增删改查操作,我们的路径为:

    路径/add?name=abc&age=11&sex=1

    resful风格的地址为:资源的描述

    restful=:请求的方式+特定格式的url

    POST请求:模拟录入操作: 路径/user
    PUT请求: 模拟更新操作:路径/user
    GET请求:模拟查询操作:路径/user/list
    DELETE请求:模拟删除操作:路径/user/1
    用一个通俗的理解就是:restful就是给每一个资源一个uri地址,之前我们想要访问某一资源,可能需要进行一系列的一步一步的操作才能获取到资源,但是使用restful的话,可以直接输入该资源的地址直接获取。
     
    注意:使用restful风格的请求路径要求springmvc拦截所有路径,而且路径后面不能有后缀
    原先我们的springmvc拦截请求为:

    使用restful风格的后,就要变成这样的:

    而且因为在表单中,mothod方法只有get和post两种取值,因此我们要想使用restful的话,需要添加过滤器:

    而且我们要再表单的内部添加一个隐藏的input标签

    <input type="hidden" name="_method" value="put"/>

    我们点开上面的过滤器的源码看一下:

    可以看到methodParam的值默认为:_method,所以上面的标签的name为_method;

    继续往下看:

    可以看到只有方法为post方法时,才会执行代码替换请求方式,因此要想使用restful风格的话,form表单的method方法必须为post,继续看上面的源码,代码会获取表单中name=_method的属性的值,将这个属性的值作为请求方式往后台传递。

    下面以实例来演示restful的put和delete用法:
    put:

    可以看到,添加请求和修改信息的请求路径一样,但是请求的方式不一样,这样就区分开了不同的操作,

     DELETE:

    删除操作需要传参:

     

  • 相关阅读:
    windows 环境下 MySQL 8.0.13 免安装版配置教程
    mysql锁分析
    Sublime Text 安装sftp插件
    SecureCRT rz 上传文件失败问题
    java与javac版本不一致问题
    比较几种工具Python(x,y) Anaconda WinPython
    王石:没变强是因为你太舒服!
    网络爬虫urllib2 tornado
    R包介绍
    互联网金融必须知道:O2O、P2P、MRD、BRD、LBS、PV、UV、KPI、MRD、VP、UED....
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/11318070.html
Copyright © 2011-2022 走看看