Restful理解

3 篇文章 0 订阅
2 篇文章 0 订阅
Restful总结
来源 :2 000年,Roy Thomas Fielding博士在他的博士论文《Architectural Styles and the Design of Network-based Software Architectures》中提出了几种软件应用的架构风格,REST作为其中的一种架构风格在这篇论文中进行了概括性的介绍

含义 :一种api接口的设计分割而不是标准,是指客户端与服务器的交互形式(一种关于url请求的规范,将每个url代表一种资源)。

使用好处 :使用restful的意义在于前后端分离,让用户友好度提升, 然后功能代码块复用

特点 :具象的(资源);表现(资源的形式【txt,html,json,jpg等】);状态转换(GET,POST,PUT,DELETE四种资源的操作方式)

个人理解 :对每个接口规范化,对请求域名、路径、版本进行层级递进以及按照特定位置设定,不混淆层级关系以及特定消息位置固定等。对四种请求方式每种都采取所固定的风格
GET SELECT :从服务器获取资源。 POST CREATE :在服务器新建资源。 PUT UPDATE :在服务器更新资源。 DELETE DELETE :从服务器删除资源。

如何设计符合RESTful风格的API:
一、域名:
将api部署在专用域名下:
http://api.example.com
或者将api放在主域名下:
http://www.example.com/api/
二、版本:
将API的版本号放在url中。
http://www.example.com/app/ 1.0 /infohttp://www.example.com/app/ 1.2 /info
三、路径:
路径表示API的具体网址。每个网址代表一种资源。 资源作为网址,网址中不能有动词只能有名词,一般名词要与数据库的表名对应。而且名词要使用复数。
错误示例:
http://www.example.com/getGoodshttp://www.example.com/listOrders
正确示例:
#获取单个商品 http://www.example.com/app/goods/ 1 #获取所有商品 http://www.example.com/app/goods
四、使用标准的HTTP方法:
对于资源的具体操作类型,由HTTP动词表示。 常用的HTTP动词有四个。
GET SELECT :从服务器获取资源。POST CREATE :在服务器新建资源。PUT UPDATE :在服务器更新资源。DELETE DELETE :从服务器删除资源。
示例:
#获取指定商品的信息 GET http://www.example.com/goods/ID #新建商品的信息 POST http://www.example.com/goods #更新指定商品的信息 PUT http://www.example.com/goods/ID #删除指定商品的信息 DELETE http://www.example.com/goods/ID
五、过滤信息:
如果资源数据较多,服务器不能将所有数据一次全部返回给客户端。API应该提供参数,过滤返回结果。 实例:
#指定返回数据的数量 http://www.example.com/goods? limit = 10 #指定返回数据的开始位置 http://www.example.com/goods?offset= 10 #指定第几页,以及每页数据的数量 http://www.example.com/goods?page= 2 &per_page= 20
六、状态码:
服务器向用户返回的状态码和提示信息,常用的有:
200 OK :服务器成功返回用户请求的数据 201 CREATED :用户新建或修改数据成功。 202 Accepted:表示请求已进入后台排队。 400 INVALID REQUEST :用户发出的请求有错误。 401 Unauthorized :用户没有权限。 403 Forbidden :访问被禁止。 404 NOT FOUND :请求针对的是不存在的记录。 406 Not Acceptable :用户请求的的格式不正确。 500 INTERNAL SERVER ERROR :服务器发生错误。
七、错误信息:
一般来说,服务器返回的错误信息,以键值对的形式返回。
{ error: 'Invalid API KEY' }
八、响应结果:
针对不同结果,服务器向客户端返回的结果应符合以下规范。
#返回商品列表 GET http://www.example.com/goods #返回单个商品 GET http://www.example.com/goods/cup #返回新生成的商品 POST http://www.example.com/goods #返回一个空文档 DELETE http://www.example.com/goods
九、使用链接关联相关的资源:
在返回响应结果时提供链接其他API的方法,使客户端很方便的获取相关联的信息。这是关关于用户友好度来设定,减少用户麻烦的操作。
十、其他:
服务器返回的数据格式,应该尽量使用JSON,避免使用XML。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值