首页
学习
活动
专区
圈层
工具
发布

一图搞懂RESTful API

REST 不是“某个具体框架”,而是一套架构约束。这些约束相互关联,合在一起能带来可伸缩性、可缓存性、松耦合和可演化的系统。

REST 的六大约束:

1. Client‑Server(客户端-服务器分离):界面和数据处理分离,便于扩展与复用。

2. Stateless(无状态):每次请求都应包含处理所需的全部信息,服务器不保存会话状态,使用 JWT、OAuth token、API key。

3. Cacheable(可缓存):响应可显式标记为可缓存或不可缓存,提高效率并减轻负载。

4. Layered System(分层系统):系统可通过中间层(如负载均衡、反向代理、网关、缓存、验证层、后端服务)组织,客户端不必知道具体后端细节。

5. Code‑on‑Demand(按需下发代码,可选):服务器可临时下发可执行代码(如 JavaScript)以扩展客户端功能。

6. Uniform Interface(统一接口):标准化的接口(资源、表示、URI、HTTP 方法),降低耦合并便于演化。

API 设计与使用实践:

1. Protocols:始终使用 HTTPS 保证安全与数据隐私。

2. Sub‑domain:常用子域名(如 api.example.com)来承载 API。

3. Versioning:给 API 版本(如 /v1)以便变更时保持向后兼容。

4. Endpoint:用名词表示资源路径(/users、/orders),路径应直观符合 REST 原则。

5. HTTP Methods:语义化使用方法:GET(安全、幂等,获取)、POST(创建/不可幂等)、PUT(更新/全量替换/幂等)、PATCH(部分更新/非必幂等)、DELETE(删除/幂等)。

6. Filtering:通过查询参数过滤结果(如 ?age=18&gender=male)。

7. Pagination:通过 page、limit 或类似参数进行分页(如 &page=1&limit=10)以分块返回大数据集。

#API开发日常

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OLwzDJPS--MQVKmNUd-dJKKw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券