REST API学习

来源:互联网 发布:网络暴力乔任梁议论文 编辑:程序博客网 时间:2024/06/06 07:02

1 实例比较

(1)传统API设计


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

 

(2)RESTful API设计


二者比较

序号比较项传统APIRest API1设计原则功能驱动设计,例如查询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优势


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 -服务器端错误

原创粉丝点击