写于:2018-12-10 12:11:30

# 什么是REST

wiki

REST (Representational State Transfer)直译为 具象的状态转换。

它是一种 架构(设计)风格,通常基于 HTTP,URI,XML 和 HTML 这些现有的流行的协议和标准。

目的是便于不同软件 中互相传递信息。

# 特点

  • 统一接口(Uniform Interface)

    1. 以资源为基础

    每个资源都可以通过URI访问到

    也就是一个个可以认知的资源,比如文档,音乐,视频等信息,都可以通过唯一的URI确定

    1. 通过重表达的客户端可以管理原资源

    就是我们通过客户端可以修改原资源的状态

    1. 返回信息足够描述自己

    这样重表达的客户端可以知道如何处理

    1. 超媒体是应用状态的引擎

    处理以超媒体为基础的状态变化

  • Stateless

    无状态

  • Cacheable

    可缓存

  • Client-Server

    客户服务器分离模式,任何一个客户端与服务器都是可替换的

  • Layered System

    分层的系统,客户端不知道他联系的是不是最终服务器

  • Code on Demand (optional)

    服务器可以将能力扩展到客户端,如果客户端可以执行的话。这个功能是可选择的。

# 什么是 RESTful API

匹配 REST 设计风格 的 Web API 称为 RESTful API.

直观简短的资源地址:URI,比如:http://example.com/resources/。 传输的资源:Web服务接受与返回的互联网媒体类型,比如:JSON,XML,YAML等 对资源的操作:Web服务在该资源上所支持的一系列请求方法(比如:POST,GET,PUT或DELETE)

# 传统 web 服务使用 RestFul 风格

传统 web 服务 一般是基于 HTTP 协议进行 REST 风格设计。 HTTP 通过 GET、POST、PUT、DELETE 进行资源控制。 GET:获取资源 PUT:资源更新 POST:创建新资源 DELETE删除资源

# Demo

获取一组商品信息 GET https://blog.qguofeng.top/products

使用一组新的商品信息替换,目前的商品信息 PUT https://blog.qguofeng.top/products

在该组商品信息下常见一个新的商品信息 POST https://blog.qguofeng.top/products

删除整租商品信息 DELETE https://blog.qguofeng.top/products

获取某件商品信息 GET https://blog.qguofeng.top/products/110

更新某件商品信息 PUT https://blog.qguofeng.top/products/110

把指定商品当成一个新的资源组,在其下面创建一个信息的商品 POST https://blog.qguofeng.top/products/110

删除指定商品信息 DELETE https://blog.qguofeng.top/products/110

精彩内容推送,请关注公众号!
最近更新时间: 3/24/2020, 9:44:42 PM