restful api和rest framework的作用

Zhicheng Jiang Lv1

REST 是表述性状态传递的英文缩写,由计算机科学家 Roy Fielding 创建。

什么是rest规范

Principle 1: client and Server architecture

以客户端向服务端发送请求的方式请求获得数据
服务端向客户端发送规定格式的响应

Principle 2: Stateless

Server side code does not remember anything about previous request
Each request needs all information to proceed
However, all the states stored in the storage tier like redis or mysql, mongo.

Principle 3: cacheability

Responses should be cacheable

Principle 4: Transparently Layered System

Principle 5: Uniform Interface

Manipulate representations of resources
• HTML, XML, JSON,…
• Uniform resource identification in request
• HTTP: /flights /flights/1234/seats

开发工程师再也不用对于每种资源请求单独写一个url,只需要写对应的请求方法即可。

也就是,对于/tasks/这个url。用户想查询资源的时候,使用get请求获取/tasks/这个url下面的资源。用户想修改或者上传资源的时候,使用post请求/tasks/这个url下面的资源

而不是查询资源时,写的url是/getTasks/,上传资源的时候写的url是/createTask/

Principle 6 (Optional): Code on Demand

这样的好处有:

场景: 假设您正在构建一个博客应用程序,该应用程序允许用户查看、创建、编辑和删除博客文章。这个应用程序有一个前端和一个后端,它们通过 REST API 进行通信。

REST API 的好处:

分离前后端: 前端是一个单独的应用,可以使用 React 构建,而后端是一个使用 Node.js 和 Express 构建的 RESTful API。它们可以独立开发和维护。

跨平台兼容性: 前端可以在 Web、iOS 和 Android 上运行,因为它们都可以使用 HTTP 来访问 REST API。

资源: 每个博客文章都是一个资源,可以通过唯一的 URL 访问,例如 /api/posts/1 表示第一篇博客文章。

HTTP 方法: 前端可以使用不同的 HTTP 方法与后端交互。例如,使用 GET 方法来获取博客文章列表,使用 POST 方法来创建新的博客文章,使用 PUT 方法来更新博客文章,使用 DELETE 方法来删除博客文章。

状态码: 当前端请求失败或成功时,后端可以返回适当的 HTTP 状态码,如 200 OK、201 Created、400 Bad Request 或 404 Not Found。这有助于前端了解请求的结果。

可测试性: 开发人员可以使用工具如 Postman 或 cURL 来测试 REST API 的不同端点,确保它们按预期工作。

例子:

获取博客文章列表:

前端发出 HTTP GET 请求到 /api/posts。

后端返回包含博客文章列表的 JSON 数据,同时返回 200 OK 状态码。
前端将数据渲染并显示给用户。

创建新博客文章:

前端收集用户输入的数据,并发出 HTTP POST 请求到 /api/posts。

后端接收到请求,验证数据,创建新的博客文章,并返回 201 Created 状态码以及新文章的详细信息。

前端可以在界面上显示新的博客文章。

更新博客文章:

用户编辑一篇博客文章并保存。

前端发出 HTTP PUT 请求到 /api/posts/1(假设正在编辑第一篇博客文章)。

后端接收到请求,更新博客文章的内容,并返回 200 OK 状态码。

删除博客文章:

用户删除一篇博客文章。

前端发出 HTTP DELETE 请求到 /api/posts/2(假设要删除第二篇博客文章)。

后端接收到请求,删除博客文章,并返回 204 No Content 状态码。

这个示例说明了如何使用 REST API 来实现博客应用程序的基本功能。通过使用 REST API,前端和后端可以独立开发,而且应用程序可以轻松地扩展和维护。同时,HTTP 方法和状态码使通信更加清晰和可靠。

  • Title: restful api和rest framework的作用
  • Author: Zhicheng Jiang
  • Created at : 2023-10-14 11:15:12
  • Updated at : 2023-10-15 15:01:51
  • Link: https://walterj726.github.io/2023/10/14/restful框架/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments