美文网首页
RESTful 笔记

RESTful 笔记

作者: zhangPeng丶 | 来源:发表于2019-03-26 00:32 被阅读0次

RESTful 笔记

REST 是什么

REST 这个词是出自 Roy Thomas Fielding 的一篇论文,如果有兴趣了解,可以查阅 REST相关章节

REST,并不是简单的四个字母,它是 Representational State Transfer 的缩写,可译为"表现层状态转化”。

看不懂没关系,在前面加一个 Resource,就可以很好的理解了:资源在网络中以某种表现形式进行状态转移

  • Resource

    这边的 Resource 指的就是我们的资源、数据等,可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。

  • Representational

    资源的表现形式,比如我们常见的:

      数据:HTML格式、XML格式、JSON格式、二进制格式等;
    
      图片:JPG格式、PNG格式等;
    

    具体表现形式,在 HTTP 请求的头信息中用 AcceptContent-Type 字段指定

  • State Transfer

    客户端和服务器的一个互动过程,势必涉及到数据和状态的变化。

    互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。

RESTful API

遵守了 REST 原则的 API

特点

  • 每个URL表示一种资源
  • URL语义清晰明确,不出现动词,只有名词复数(操作的动词是通过请求方式来表示)
  • 使用HTTP的方法来表示对资源的增删改查
    • GET(常用):从服务器上获取一个具体的资源或者一个资源列表。安全且幂等
    • POST(常用): 在服务器上创建一个新的资源。不安全且不幂等
    • PUT(常用):以整体的方式更新服务器上的一个资源。不安全但幂等
    • DELETE(常用):删除服务器上的一个资源。不安全但幂等
    • PATCH:只更新服务器上一个资源的一个属性。
    • HEAD: 获取一个资源的元数据,如数据的哈希值或最后的更新时间
    • OPTIONS:获取客户端能对资源做什么操作的信息。
  • 使用HTTP的状态来表示结果
    • 200 OK
    • 400 Bad Request
    • 500 Internal Server Error

幂等:无边际效应,多次操作得到相同的结果

简单来讲就是:

  1. Url 就知道要什么
  2. http method 就知道干什么
  3. http status code 就知道结果如何

优点

  • 透明性,暴露资源存在。
  • 充分利用 HTTP 协议本身语义。
  • 无状态,这点非常重要。在调用一个接口(访问、操作资源)的时候,可以不用考虑上下文,不用考虑当前状态,极大的降低了复杂度HTTP。
  • 本身提供了丰富的内容协商手段,无论是缓存,还是资源修改的乐观并发控制,都可以以业务无关的中间件来实现。

  1. 理解RESTful架构
  2. RESTful API 编写指南
  3. 如何给老婆解释什么是RESTful
  4. GitHub API
  5. Microsoft REST API Guidelines

Title: RESTful 笔记

Date: 2019.03.26

Author: zhangpeng

Github: https://github.com/fullstack-zhangpeng

相关文章

  • 应用Flask框架设计RESTFUL API接口

    笔记 RESTful架构风格概述 RESTful架构风格 RESTful架构风格最初由Roy T. Fieldin...

  • Restful web Services ----第 2章 笔记

    Restful web Services ----第 2章 笔记 识别资源 开发RESTful Web 服务的首要...

  • Laravel框架学习(一)

    理解RESTful架构转载 laravel 学习笔记——路由(基础)

  • Spring+SpringMVC+MyBatis整合进阶篇(四)

    前言 前文《RESTful API实战笔记(接口设计及Java后端实现)》中介绍了RESTful中后端开发的实现,...

  • RESTful学习笔记

    RESTful学习笔记 RESTful是什么? 它的本质是一种软件架构风格,核心是面向资源(面向资源去设计API)...

  • RESTful笔记

    RESTful架构 参考链接1参考链接2 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合...

  • RESTful 笔记

    RESTRESTful,是目前最为流行的一种互联网软件架构。因为它结构清晰、符合标准、易于理解、扩展方便,所以正得...

  • RESTful 笔记

    RESTful 笔记 REST 是什么 REST 这个词是出自 Roy Thomas Fielding 的一篇论文...

  • Retrofit梳理

    本文为过往笔记整理, 在此只作记录,不做严谨的技术分享。 概述 RESTful Representational ...

  • Retrofit梳理

    本文为过往笔记整理, 在此只作记录,不做严谨的技术分享。 概述 RESTful Representational ...

网友评论

      本文标题:RESTful 笔记

      本文链接:https://www.haomeiwen.com/subject/nnfwvqtx.html