REST学习笔记

REST简介

  • 2000年 Roy Thomas Fielding,HTTP协议的主要设计者,Apache基金会的第一任主席;
  • 互联网软件的架构原则,一种风格。如果一个架构符合REST原则,就称它为RESTful架构;
  • Representational State Transfer 翻译为 “变现层状态转化”;
    • 资源(Resources)
      • REST的名称“表现层状态转化”中省略了主语。“表现层”其实指的是“资源”(Resources)的表现层;
      • 所谓“资源”,就是网络上的一个实体,可以用URI指向它;
    • 表现层(Representation)
      • 资源是一种信息实体,它可以有多种外在表现形式。我们把“资源”具体呈现出来的形式称它为“表现层”(Representation),如,文本可以用txt格式表现,也可以用HTML格式、xml格式、json格式表现,甚至可以采用二进制格式;
      • 资源的具体表现形式应该在HTTP请求头的信息中用Accept和Content-type字段指定,这两个字段才是对“表现层”的描述
    • 状态转化(State Transfer)
      • HTTP协议里有5个常用的标识操作的方式的动词:GET、POST、PUT、DELETE、PATCH
      • GET:用来获取资源
      • POST:用来新建资源(也可以用来更新资源)
      • PUT:用来更新资源
      • DELETE:用来删除资源
      • PATCH:用来更新资源的部分属性

REST风格的架构

  • 使用“api”作为web上下文
    http://192.168.0.1/api

  • 增加版本标识
    http://192.168.0.1/api/v1.1

  • 标识资源
    将资源名称放在URL中
    http://192.168.0.1/api/v1.1/user
    如果资源有层级关系,则放入层级关系,如:用户属于系统管理,可以这么写
    http://192.168.0.1/api/v1.1/system/user

  • REST中的HTTP Method
    新增用户
    POST http://192.168.0.1/api/v1.1/system/user

    查找ID为451的用户
    GET http://192.168.0.1/api/v1.1/system/user/451
    查询所有用户
    GET http://192.168.0.1/api/v1.1/system/user
    如果有翻页,可以增加offset、limit等参数
    GET http://192.168.0.1/api/v1.1/system/user?offset=1&limit=20&sortBy=name&sortOrder=desc
    
    更新ID为451的用户
    PUT http://192.168.0.1/api/v1.1/system/user/451
    
    删除ID为451的用户
    DELETE http://192.168.0.1/api/v1.1/system/user
    
    可以为资源标识添加后缀,使得REST代码更加容易阅读,比如:
    GET http://192.168.0.1/api/v1.1/system/user/451.json
    
    现在也有一种设计REST URI的方式,把操作也放在URI中,HTTP方法主要采用GET 和 POST
    
  • REST中的HTTP Status
    200 OK 用户请求成功
    400 错误的请求
    404 NOT Found
    405 HTTP Method使用错误,如使用GET方法访问POST方法
    406 表示无法使用请求的内容特性来响应请求的资源,如在SpringBoot中,请求后缀以html结尾,但同时请求的HTTP头中又包含了Accept:application/json
    500 服务器内部错误

REST vs Webservice

  • 前者更轻量级,开发一个Webservice服务实现要比开发REST慢很多

  • WS-* 协议复杂

  • 在传输数据上,JSON比XML更为流行,XML的解析性能方面不理想

  • XML在网络间传输的数据量会大一些,不如JSON简单

    WS-*是指一系列与WS相关的规范,比如:
    WS-Security 安全相关,还有WS-Trust;
    WS-Addressing 访问调用相关规范
    WS-BPEL 业务处理规范
    WS-AtomicTransaction 事务相关,还有WS-Transaction
    WS-Management 管理相关规范

李家智《Spring Boot 2精髓》学习笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值