REST 总结

原文链接:http://www.infoq.com/cn/articles/rest-introduction

REST关键原则

  • 为所有“事物”(资源)定义ID
  • 将所有事物链接在一起
  • 使用标准方法
  • 资源多重表述
  • 无状态通信

第二条:实际上服务器端为客户端提供一组链接,使客户端能通过链接将应用从一个状态改变为另一个状态。即使用链接指引可以被标识的事物(资源)。

第三条:总结如下:为使客户端程序能与你的资源相互协作,资源应该正确地实现默认的应用协议(HTTP),也就是使用标准的GET、PUT、POST和DELETE方法。

第四条:资源多重表述。问题:客户程序如何知道该怎样处理检索到的数据,比如作为GET或者POST请求的结果?如果客户程序知道如何处理一种特定的数据格式,那就可以与所有提供这种表述格式的资源交互。

第五条:无状态通信。服务器端不能保持除了单次请求之外的,任何与其通信的客户端的通信状态。这样做的最直接的理由就是可伸缩性—— 如果服务器需要保持客户端状态,那么大量的客户端交互会严重影响服务器的内存可用空间(footprint)

### REST风格的核心概念与简单总结 REST(Representational State Transfer)是一种软件架构风格,主要用于设计网络应用程序。它的核心思想是将应用的各个组件抽象为资源(Resources),并通过 URI(统一资源标识符)对这些资源进行唯一标识和访问[^2]。 #### 核心概念 1. **资源(Resource)** 资源是 REST 架构中的基本单位,可以是一个文档、图片、视频或其他任何可以通过 URI 访问的内容。每个资源都有唯一的标识符(URI)[^2]。 2. **表现层(Representation)** 客户端通过请求获取资源的表现形式,常见的有 JSON 或 XML 格式。不同的客户端可以根据需求选择适合自己的表现形式。 3. **状态转移(State Transfer)** REST 是一种无状态协议,意味着每次请求都必须包含足够的信息以便服务器能够理解并处理该请求。服务器不会保存客户端的状态信息,所有的状态管理都在客户端完成。 4. **HTTP 方法** REST 使用标准的 HTTP 方法操作资源,主要包括以下几种: - `GET`:读取资源。 - `POST`:创建新资源。 - `PUT`:更新现有资源或替换整个资源。 - `DELETE`:删除资源。 5. **统一接口(Uniform Interface)** REST 提供了一组统一的约束条件,使得不同服务之间的交互更加一致。这包括资源识别、资源的操作方式以及超媒体驱动的应用程序逻辑等[^3]。 6. **分层系统(Layered System)** REST 支持分层系统的结构,允许中间件(如代理、网关)参与到请求响应过程中,从而提高系统的可扩展性和安全性[^3]。 7. **缓存能力(Cacheable)** 响应可以被标记为可缓存或不可缓存,这样有助于减少不必要的重复调用,提升性能[^3]。 #### 简单总结 REST 风格的设计目标是简化开发者构建分布式系统的复杂度,同时保持高效率和良好的伸缩性。它基于 HTTP 协议,利用标准化的方法集和数据格式实现跨平台的数据交换。由于其无状态特性,REST 更加适用于互联网环境下的大规模分布式应用开发[^1]。 ```python # 示例代码展示如何使用 Python 请求 REST API import requests response = requests.get('https://api.example.com/resource') if response.status_code == 200: data = response.json() print(data) else: print(f"Error: {response.status_code}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值