Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:django:restful_api

RESTful API


AI介绍

REST规范的Web API,通常被称为RESTful API,是一种遵循REST(Representational State Transfer,表述性状态转移)架构风格设计的Web API接口规范。它通过HTTP协议提供访问和操作资源的能力。REST并不是一个标准,而是一组设计原则和约定。一个被称为RESTful的API,通常满足以下特点:

核心原则:

  1. 资源(Resource)导向 一切对外提供的对象都被视为资源,通过URI(统一资源标识符)唯一标识。例如:

    GET /users/123   # 表示访问ID为123的用户资源
  2. 使用标准HTTP方法 不同的HTTP方法对应不同的操作语义:

    • GET:查询资源
    • POST:创建资源
    • PUT:更新资源(整体替换)
    • PATCH:部分更新资源
    • DELETE:删除资源
  3. 无状态(Stateless) 每个请求都应包含完成该请求所需的全部信息,服务器不保存客户端的状态(如Session等)。客户端状态必须由客户端维护。

  4. 统一接口(Uniform Interface) 所有的API接口形式应一致。客户端通过URI定位资源,通过HTTP动词操作资源,响应通常使用标准的数据格式(如JSON)。

  5. 表现层与资源的分离 客户端与服务器通过资源的表述(Representation)进行交互,而非资源本身。表述通常是JSON或XML格式。

  6. 可通过超媒体驱动(HATEOAS) 返回数据中包含可操作的链接(如“下一页”,“删除”操作等),指导客户端进一步操作。(但很多实际项目不严格要求这一点)

一个RESTful API设计示例(以用户资源为例):

操作 HTTP方法 URL 说明
获取用户列表 GET /users 返回用户集合
创建新用户 POST /users 创建新用户
获取单个用户 GET /users/{id} 查询指定用户
更新整个用户信息 PUT /users/{id} 更新指定用户
更新部分信息 PATCH /users/{id} 部分更新
删除用户 DELETE /users/{id} 删除指定用户

优点:

  • 结构清晰,易于理解和使用
  • 基于HTTP标准,兼容性好
  • 易于扩展和维护

常见用途:

  • 移动App后端
  • 前后端分离的Web应用
  • 微服务之间的数据交互

参考资料

  1. 为什么要学习Django REST Framework (DRF), 什么是符合RESTful规范的API? https://pythondjango.cn/django/rest-framework/1-RESTfull-API-why-DRF/
  2. RESTful のウェブ API 設計で避けるべき 6 つのよくあるミス https://cloud.google.com/blog/ja/products/api-management/restful-web-api-design-best-practices?hl=ja
/var/www/DokuWikiStick/dokuwiki/data/pages/程序/django/restful_api.txt · Last modified: 2025/07/28 05:58 by zhonghui