宽屏模式

RESTful设计风格

什么是RESTful

一种软件设计风格, 全称为 Representational State Transfer,直译为表现层状态转移,可以解释为用 URL 定位资源,用 HTTP 动词描述操作.
目前实现的最好的是github API

接口实现原则

  • 安全可靠, 高效, 易扩展;
  • 简单明了,可读性强, 没有歧义;
  • API风格统一, 调用规则, 传入参数, 和返回数据有统一的标准;

RESTful 设计原则

  1. HTTPS

      非 HTTPS 的 API 调用,不要重定向到 HTTPS,而要直接返回调用错误以禁止不安全的调用;
  2. 域名

      将API与其主域名区分开;
  3. 版本控制

    将版本号直接加入 URL 中, 如: https://api.larabbs.com/v1
    使用 HTTP 请求头的 Accept 字段进行区分,如:
    https://api.larabbs.com/

    Accept: application/prs.larabbs.v1+json
    Accept: application/prs.larabbs.v2+json

  4. 用URL定位资源
    在 RESTful 的架构中,所有的一切都表示资源,每一个 URL 都代表着一种资源,资源应当是一个名词,而且大部分情况下是名词的复数,尽量不要在 URL 中出现动词。
  5. 用HTTP动作描述操作
    幂等性-指的是一次或者多次请求一个资源应该具有同样的副作用, 也就是一次或多次访问, 对这个资源带来的变化是相同的;

常用的动词及幂等性

动词描述是否幂等
GET获取资源,单个或者多个
POST创建资源
PUT更新资源,客户端提供完整的资源数据
PATH更新资源,客户端提供完整的资源数据
DELETE删除资源

为什么 PUT 是幂等的而 PATCH 是非幂等的,因为 PUT 是根据客户端提供了完整的资源数据,
客户端提交什么就替换为什么,而 PATCH 有可能是根据客户端提供的参数,动态的计算出某个值,
例如每次请求后资源的某个参数减1,所以多次调用,资源会有不同的变化。

Larwas
请先登录后发表评论
  • latest comments
  • 总共0条评论