什么叫RESTful风格

  RESTful是 Representational State Transfer 的缩写,它是一种面向资源的架构风格,目的是通过URL定位到资源,使用HTTP协议中定义的HTTP方法(GET、POST、PUT、DELETE、PATCH等)对资源进行操作。

  而RESTful的接口设计规范中,就有一种常见的命名方式称为RESTful风格(也称为RESTful API),即符合RESTful规范的接口实现方式,包括遵循URI设计规范、使用HTTP请求方式进行业务操作、返回结果采用标准的HTTP响应状态码等。

  RESTful风格的接口设计要求使用明确的HTTP方法(例如GET、POST、PUT、DELETE等)表示操作类型,而不是将所有请求发送到同一个地址,通过参数来区分是哪种操作。同时,根据请求返回的结果(例如成功、失败,或是返回数据),使用不同的HTTP响应状态码来区分,而不是将所有结果都塞到响应体里面返回。

  总之,RESTful风格的接口设计,旨在实现对URL资源的标准化,使得URL能够代表一种完整资源,每个URL代表一种标准操作,使用标准的HTTP状态码和数据格式,能够达到更好的可读性、可靠性和可维护性,同时提高接口的安全性。

RESTful 风格的接口设计需要遵循以下几个原则:

  1. 路径(URI)是资源的唯一标识,应该尽量简洁,符合语义,并使用小写字母和短横线(-)作为单词间的分隔符。

    例如,获取用户列表的API应该设计为 /users,而不是 /getUserList

  1. HTTP 方法和请求体(Request Body)用于表示资源的操作和更新。

    HTTP 方法用于表示资源操作类型,如 GET、POST、PUT、DELETE、PATCH 等,而请求体数据用于更新和新增资源。

  1. HTTP 响应状态码(Response Code)和响应体(Response Body)用于表示操作结果。

    HTTP 响应状态码是专门为标识客户端请求处理结果而设计的,不同的状态码表示不同的操作结果。 RESTful 接口中,我们需要保证返回的 HTTP 响应状态码标识明确,符合标准,通常返回的状态码包括:

  • 2xx 表示成功处理了请求。
  • 3xx 表示需要客户端进一步操作,如重定向。
  • 4xx 表示客户端错误,如请求格式错误、资源不存在。
  • 5xx 表示服务器错误,如服务器内部错误。

响应体用于表示请求结果的数据,应该采用标准 JSON 格式编写,并采用友好的格式显示给用户。

以下是一个符合 RESTful 风格的示例:

获取用户列表

GET /users HTTP/1.1

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
    {
        "id": 1,
        "name": "John",
        "age": 20,
        "gender": "male"
    },
    {
        "id": 2,
        "name": "Lucy",
        "age": 22,
        "gender": "female"
    }
]

 

 新增用户

POST /users HTTP/1.1
Content-Type: application/json; charset=utf-8
{
    "name": "David",
    "age": 24,
    "gender": "male"
}

HTTP/1.1 201 Created
Location: /users/3

更新用户

PUT /users/1 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
    "name": "Tom",
    "age": 21,
    "gender": "male"
}

HTTP/1.1 200 OK

删除用户

DELETE /users/2 HTTP/1.1

HTTP/1.1 204 No Content
posted @ 2023-05-16 10:49  jingdy  阅读(454)  评论(0编辑  收藏  举报