1 实例比较

(1)传统API设计

REST API学习

潜在问题:功能驱动设计;客户端需要了解所有接口设计并实现才能使用

 

(2)RESTful API设计

REST API学习

二者比较

序号 比较项 传统API Rest API
1 设计原则 功能驱动设计,例如查询API URL(./getOrder)、删除API URL(./delOrder),URL本身自由定义,没有标准 基于资源(由URL进行唯一标识),对资源提供标准操作方法(GET、PUT、POST、DELETE),不可扩展。例如对某一个订单资源(./order/{id})的查询和删除,即对同一个资源采用的HTTP方法不同,分别为GET和DELETE请求。执行DELETE操作之后,资源的状态发生了转移
2 如何使用HTTP协议 仅仅将HTTP用作传输层协议,实践中不严格遵守HTTP规范,增删改查基本都可以通过GET/POST实现,因此传统API基本看不到PUT和DELETE方法 将HTTP用作应用层协议,严格遵守HTTP规范,GET用于获取,POST用于新增,PUT用于更新,DELETE用于删除,REST API对资源只能采用标准HTTP方法进行操作
3 与客户端交互 客户端需要了解所有接口设计才能使用 REST接口在返回资源同时,也返回资源后续可以进行的操作引导客户端,理论上客户端只需要知道资源入口即可
4 唯一标识 ------- ------


2   REST API优势

REST API学习


3   REST  API设计

(1)URI规范:URI = scheme "://" authority "/" path [ "?" query ] [ "#" fragment ]

(2)URI大小写敏感,统一使用小写字母

(3)URI中建议带上版本号

(4)URL与URI区别:URL(java.net.URL)是URI(java.net.URI)子集,更侧重于实现

(5)选用正确的方法

         get -只用做资源的读取。
         post -用于创建一个新的资源。
         delete -用于资源的删除。
         put -用于更新资源或者创建资源
         head -只获取某个资源的头部信息

(6)返回正确的状态码

        2XX -请求正常处理并返回
        3XX -重定向,请求的资源位置发生变化
       4XX -客户端发送的请求有错误
       5XX -服务器端错误

相关文章: