1. JavaScript 基础

  2. 函数进阶

  3. 深入数据和类型

  4. 运算符

  5. 浏览器存储

  6. Document

  7. Web API

  8. 事件

  9. 错误处理

  10. 异步编程

  11. 网络请求

  12. 模块

  13. 练习

  14. 实例

  15. 工具与规范

RESTful API 中的 REST 是 representation state transfer 的缩写,直译过来是表现层状态转换。

RESTful 的设计理念就是将我们的数据都抽象成一个资源(resource),然后通过 HTTP 请求对这些资源进行增查改删(CRUD, create, read, update, and delete)的操作。

资源URL

我们通常使用单词的单数来表示一个资源。

单个用户:http://example.com/user

单个帖子:http://example.com/post

用单词的复数来表示资源的列表。

用户列表:http://example.com/users

帖子列表:http://example.com/posts

用复数 + ID 的表示单个资源。

ID 为 3 的用户:http://example.com/users/3

ID 为 4 的帖子:http://example.com/posts/4

请求方法

使用不同的 HTTP 请求方法表示不同的操作:

方法 描述
GET 一般是默认的方法,表示获取一个资源。(查,read)
POST 生成一个资源。(增,create)
PUT 修改一个资源。(改,update)
DELETE 删除一个资源。(删,delete)

比如发布一个帖子

返回状态码

对于操作的结果,用状态码进行初步的表示,比如 200 就表示成功。

  1. 信息响应 (100199)
  2. 成功响应 (200299)
  3. 重定向消息 (300399)
  4. 客户端错误响应 (400499)
  5. 服务端错误响应 (500599)

$$tip

一般来说,状态码的数量不足以详尽地表示所有所有的错误,所以一般只使用一个状态码表示错误,然后再在正文当中使用公司自己定义的错误码。

比如三眼鸭的接口错误就统一使用 400 状态码,再在响应正文中标明错误。

密码错误:

{
    code: 1100,
    msg: "用户名或密码错误。"
}

$$

RESTful API 不是 HTTP

RESTful API 是一个数据交换规范,而 HTTP 是一种通信协议, RESTful API 是基于 HTTP 实现的。