zoukankan      html  css  js  c++  java
  • 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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    ASP.NET没有魔法——ASP.NET MVC Razor与View渲染
    ASP.NET没有魔法——ASP.NET MVC界面美化及使用Bundle完成静态资源管理
    ASP.NET没有魔法——ASP.NET MVC 模型绑定解析(下篇)
    ASP.NET没有魔法——ASP.NET MVC 模型绑定解析(上篇)
    ASP.NET没有魔法——ASP.NET MVC 模型验证
    ASP.NET没有魔法——ASP.NET MVC 模型绑定
    ASP.NET没有魔法——ASP.NET OAuth、jwt、OpenID Connect
    ASP.NET没有魔法——ASP.NET MVC使用Oauth2.0实现身份验证
    MyDAL
    Git
  • 原文地址:https://www.cnblogs.com/sarah-wen/p/10787784.html
Copyright © 2011-2022 走看看