REST 程序设计之http method 、http status

HTTP method

在rest程序设计中对资源都是通过URI来体现的,对资源的操作主要是通过Http请求的方法来实现的。API功能是由http method+ URI共同体现的。举例如下

  • GET /tasks - 获取任务列表信息
  • GET /tasks/12 -获取指定的任务信息
  • POST /tasks - 创建新的任务
  • PUT /tasks/12 - 更新指定的任务
  • PATCH /tasks/12 - 更新指定任务的部分信息
  • DELETE /tasks/12 - 删除指定的任务

以上中get 、post、put、delete比较常用。主要实现对资源的CURD。

HTTP status

作为 API 的设计者,正确的将 API 执行结果和失败原因用清晰简洁的方式传达给客户程序是十分关键的一步。 我们确实可以在 HTTP 的相应内容中描述是否成功,如果出错是因为什么, 然而, 这就意味着用户需要进行内容解析,才知道执行结果和错误原因。因此,HTTP 响应代码可以保证客户端在第一时间用最高效的方式获知 API 运行结果,并采取相应动作。 下表列出了比较常用的响应代码。

  • 200 响应成功。主要响应GET, PUT, PATCH 、DELETE.请求,同时也可以响应资源创建成功无返回结果的post请求
  • 201 资源成功创建,同时在location header 里面有新资源的 地址
  • 204 返回请求成功 不反返回内容,即返回结果不包含body,比如delete请求。
  • 301 重定向 , 请求的网页已被永久移动到新位置。服务器返回此响应时,会自动将请求者转到新位置。
  • 302 重定向 , 请求的网页临时移动到新位置,但求者应继续使用原有位置来进行以后的请求。302 会自动将请求者转到不同的临时位置。
  • 304 自从上次请求后,请求的网页未被修改过。服务器返回此响应时,不会返回网页内容。
  • 400 错误请求
  • 401 未授权 , 请求要求进行身份验证
  • 403 已禁止 , 服务器拒绝请求。
  • 404 未找到 , 服务器找不到请求的网页。
  • 405 方法禁用 , 禁用请求中所指定的方法。
  • 410 请求的页面不存在
  • 415 不支持的媒体类型
  • 429 请求次数过多
  • 500 内部服务器错误。