什么是RESTful风格的API

一、含义

什么是restful,引用百度百科中的解释就是:一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

二、传统API和RESTfulAPI有何差异

传统api和RESTful API对比
  传统API RESTfulAPI
查询 /user/query?name=hu GET  /user?name=hu    GET
删除 /user/delete?id = 1 GET /user/1 DELETE
修改 /user/update?id=1&name=liu POST /user/1 PUT
新增 /user/create?name=tom  POST /user POST

1.传统的接口用URL来描述行为,RESTful用url来描述资源,针对的是资源。从上面表中可以看出,传统API就是在url中去定义行为,从路径中可以看出这个API是做的什么操作;而RESTfulAPI的url是用来描述资源,id=1的user是一个资源,假设我们的数据库中有100个user对象,就对应着100个资源。

2.使用HTTP方法来描述行为。使用HTTP状态码来表示不同的结果。RESTful API是用HTTP的方法来描述行为,GET——请求表示查询,DELETE——请求表示删除,PUT——请求表示修改,POST——请求表示新增;传统的API接口,不论调用成功与否,返回的状态码可能都是200,只是在返回的数据中,有某个字段判断是否调用成功;而RESTfulAPI是通过HTTP状态码来表示不同的结果,比如:200——表示调用成功,400——表示调用失败,500——表示异常等。

3.使用json交互数据。传统的API可能使用字符串拼接,可能使用xml等各种形式进行数据的交换;而在RESTful API中都是使用json进行数据的交互。

4.restful只是一种风格,并不是强制的标准。RESTful只是一种风格,就好像在生活中的道德约束一样,走路闯红灯是不对的,但是你偶尔闯了红灯,也不会有警察抓你。

三、RESTful成熟度图

一般在项目都是用到了Level2的级别,线上项目中还未见到有Level3级别的。

猜你喜欢

转载自blog.csdn.net/huxiaodong1994/article/details/84784861