REST RESTful

REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级;跨平台;跨语言的架构设计;它是一种设计风格,不是一种标准,十一种思想。
Rest架构的主要原则:
    网络上的所有事物都被抽象为资源;
    每个资源都有一个唯一的资源标识符;
    同一个资源具有多种表现形式(xml,json等);
    对资源的各种操作不会改变资源标识符;
    所有的操作都是无状态的;
    符合REST原则的架构方式即可称为RESTful;

什么是Restful?
    对应的中卫是rest式的;Restful web service是一种常见的rest的应用,是遵守了rest风格的web服务;rest式的web服务是一种ROA(The Resource-Oriented Architecture)(面向资源的架构)。

为什么会出现Restful?
    在Restful之前的操作:
    http://localhost/user/query/1 GET 根据用户id查询用户数据
    http://localhost/user/save POST 新增用户
    http://localhost/user/update POST 修改用户信息
    http://localhost/user/delete GET/POST 删除用户信息

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

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

如何使用restful?
    http方法        资源操作        幂等        安全
    GET             SELECT          是          是
    POST            INSERT          否          否
    PUT             UPDATE          是          否
    DELETE          DELETE          是          否
 
    幂等性:对同一REST接口的多次访问,得到的资源状态是相同的。
    安全性:对该REST接口访问,不会使服务器端资源的状态发生改变。

    SpringMVC实现restful服务:
        SpringMVC原生态的支持了REST风格的架构设计
        所涉及到的注解:
        @RequestMapping
        @PathVariable
        @ResponseBody

    HTTP相应状态码:
        Code            HTTP Operation                  Body Contents        Description
        200             GET,PUT                        资源                 操作成功
        201             POST                            资源,元数据         对象创建成功
        202             POST,PUT,DELETE,PATCH        N/A                  请求已经被接受
        204             DELETE,PUT,PATCH              N/A                  操作已经执行成功,但是没有返回数据
        301             GET                             link                 资源已被移除
        303             GET                             link                 重定向
        304             GET                             N/A                  资源没有被修改
        400             GET,POST,PUT,DELETE,PATCH   错误提示(消息)     参数列表错误(缺少,格式不匹配)
        401             GET,POST,PUT,DELETE,PATCH   错误提示(消息)     未授权
        403             GET,POST,PUT,DELETE,PATCH   错误提示(消息)     访问受限,授权过期
        404             GET,POST,PUT,DELETE,PATCH   错误提示(消息)     资源,服务未找到
        405             GET,POST,PUT,DELETE,PATCH   错误提示(消息)     不允许的http方法
        409             GET,POST,PUT,DELETE,PATCH   错误提示(消息)     资源冲突,或者资源被锁定
        415             GET,POST,PUT,DELETE,PATCH   错误提示(消息)     不支持的数据(媒体)类型
        429             GET,POST,PUT,DELETE,PATCH   错误提示(消息)     请求过多被限制
        500             GET,POST,PUT,DELETE,PATCH   错误提示(消息)     系统内部错误
        501             GET,POST,PUT,DELETE,PATCH   错误提示(消息)     接口未实现

总结:
    restful就是旧技术,新风格。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值