• RESTful


    1、REST(Representational State Transfer)表象化状态转变(表述性状态转变),在2000年被提出,基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。是Web服务的一种新的架构风格(一种思想)。

    轻量级:代码不被侵入,轻量级跟包大小无关。耦合性越低越轻量。、

    rest原则:

    (1) 网络上的所有资源都有一个唯一的资源标识符

    (2) 同一个资源具有多个不同的表现形式(xml , json等)

    (3) 对资源的各种操作不会改变资源标识符

    (4) 所有的操作都是无状态的,服务器端不存储来自某个客户的某个请求中的信息,并在该客户的其他请求中使用

    2、RESTful(遵循了rest原则的web服务)

    restful是由rest衍生出来的一种常见的REST应用,REST式的web服务是一种ROA(面向资源的架构)。

    (1) . RESTful资源操作

    http方法资源操作幂等安全
    GET SELECT
    POST INSERT
    PUT UPDATE
    DELETE DELETE

    幂等性:对同一REST接口的多次访问,得到的资源状态是相同的。

    安全性:对该REST接口访问,不会使服务器端资源的状态发生改变。

    (2) 接口示例

    传统URL请求格式
    http://127.0.0.1/user/query/1 GET  根据用户id查询用户数据
    http://127.0.0.1/user/save POST 新增用户
    http://127.0.0.1/user/update POST 修改用户信息
    http://127.0.0.1/user/delete GET/POST 删除用户信息

    RESTful用法
    http://127.0.0.1/user/1 GET  根据用户id查询用户数据
    http://127.0.0.1/user  POST 新增用户
    http://127.0.0.1/user  PUT 修改用户信息
    http://127.0.0.1/user  DELETE 删除用户信息

    之前的操作是没有问题的,大神认为是有问题的,有什么问题呢?你每次请求的接口或者地址,都在做描述,例如查询的时候用了query,新增的时候用了save,其实完全没有这个必要,我使用了get请求,就是查询.使用post请求,就是新增的请求,我的意图很明显,完全没有必要做描述,这就是为什么有了restful.

    (3). 响应设计

    原则:数据接收到即可使用,无需拆箱。

    在一次请求中,content body仅仅用于传输数据。Header中存放描述请求或请求的元数据,例如 X-Result-Fields。 

    (4). http响应状态码

    3. RESTful的使用
    下面将用实际代码演示RESTful做增删改查的操作使用示例:

    1.查询get:

    查询测试:

     

    2.新增post:

    新增测试:
    AJAX调用:

    3.更新put:

    Service写法:

    更新测试:

    默认情况下,PUT请求是无法提交表单数据的,在Spring MVC项目中需要在web.xml中添加过滤器解决:

    <!-- 解决PUT请求无法提交表单数据的问题 -->
    <filter>
    <filter-name>HttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>HttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    4.删除delete:

    删除测试:

    优势

    RESTful减少了传统请求的拆装箱操作,结构清晰,在接口定义中受到前后端开发者的青睐

    ---------------------
    作者:大脑补丁
    来源:CSDN
    原文:https://blog.csdn.net/x541211190/article/details/81141459
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    如何向Android模拟器打电话发短信
    APK文件安装模拟器和ADB命令的使用
    android的个人代码总结
    android一些基础知识
    android常用的一些属性说明
    新的博客
    用字符进行布尔值判断,踩到的一个小坑
    通过outlook的web邮箱获取指定邮件内容的邮件
    使用win32com接口获取outlook收件箱的内容
    Python 详解命令行解析
  • 原文地址:https://www.cnblogs.com/sarah-wen/p/10787784.html
Copyright © 2020-2023  润新知