如何设计一个Restful API?

内容目录

概述

Restful API资源是重中之重。

设计关键点

  1. 资源
  2. HTTP方法
  3. Paths
  4. HTTP状态码
  5. 版本控制
  6. 错误处理

详细描述一下

  1. 资源
    我们需要先明确要操作的资源。例如:在实际项目中,我们需要操作的资源:用户,商品,订单等等,资源通常用名词表示,例如:

    # 用户
    /users
    # 商品
    /products
    # 订单
    /orders
  2. HTTP方法
    使用标准的HTTP方法来表示对资源的操作。

    • GET:用于获取资源
    • POST: 用于创建资源
    • PUT: 用于完全更新资源
    • PATH: 用于部分更新资源
    • DELETE: 用户删除资源
      例如:

      # 获取所有用户
      GET /users
      # 创建用户
      POST /users
      # 完全更新用户
      PUT /users/{username}
      # 部分更新用户
      PATCH /users/{username}
      # 删除用户
      DELETE /users/{username}
  3. Paths
    保持URI结构清晰和有意义。
    例如:

    
    
    # 获取全部用户
    GET /users
    # 获取某个用户的所有订单
    GET /users/{username}/orders
    # 获取某个用户的某个订单
    GET /users/{usernames}/orders/{orderNo}
    # 分页获取所有用户
    GET /users/page
    # 分页获取所有用户的订单
    GET /users/orders/page
    # 分页获取某个用户的所有订单
    GET /users/{username}/orders/page


4. HTTP状态码
返回适合的HTTP状态码来表示操作的结果。HTTP状态码意义如下:
- 1xx:信息性 - 传达传输协议级别的信息。 
- 2xx:成功 - 表示客户端的请求已成功接受。 
- 3xx:重定向 - 表示客户端必须采取一些额外的行动以完成其请求。 
- 4xx:客户端错误 - 此类错误状态码指向客户端。 
- 5xx:服务器错误 - 服务器对这些错误状态码负责。

5. 版本控制
如果考虑API未来会有重大变更或者预先考虑API兼容性问题可以考虑在path中增加/v1, /v2进行版本控制。

6. 错误处理

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部