RESTful API架构-Openstack学习

        声明:本人的针对Openstack开发的学习笔记,且以用为目的不是很严谨,仅用于理解,错了不负责,哈哈哈哈哈哈。


一、REST是HTTP的亲戚

 大牛Roy Fielding (Apache HTTP 服务器的核心开发者,HTTP/1.1 协议专家组)提出一套框架设计了HTTP/1.1(就是HTTP协议的1.1版本),之后其博士论文完善了这个框架,得到了REST。满足REST设计原则的架构都称为RESTful架构。

         不严谨的说,HTTP协议就是客户端和服务器之间的消息搬运工。HTTP说“东西给服务器A”,TCP将东西分成几个包裹递给再IP,IP协议把包裹传过去,TCP再装起来交给HTTP。

        既然HTTP就是超文本传输,我觉得REST大概也就是类似一个网页地址对应资源的功能。

        HTTP当然要用到网址,不准确的说是一个叫做URL的东西, 全称为“统一资源定位符(Uniform Resource Locator)。REST的全称是表述性-状态转移,其对象就是资源。

       一个完整的 URL 包括:协议部分(如http)、网址(baidu.com)、文件地址部分。协议部分以//为分隔符。

二、重要的统一资源接口(API)原则

       RESTful API也是依托HTTP的,下面这些都是:

 


[POST]     http://mengkang.net/users   // 新增

[GET]      http://mengkang.net/users/1 // 查询

[PATCH]    http://mengkang.net/users/1 // 更新

[PUT]      http://mengkang.net/users/1 // 覆盖,全部更新

[DELETE]   http://mengkang.net/users/1 // 删除

[POST]这些带括号的是RESTful的特色,其宗旨是一个URL就是一个资源,把对其的动作放在其中的括号里。比如一个删除功能的API,传统的设计是http://xx.net/del/id/x,而REST放到了括号里。

这就是RESTful 的原则,API包括一组受限的预定义操作,不管什么资源都用相同的接口调用。就好像不管是玩dota还是玩LOL,都统一叫 [玩游戏]。

所以REST有点像具有CURD(增、删、改、查)能力的数据库架构。当然不仅如此。

三、状态码

服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)。例如:

        200 OK - [GET]:服务器成功返回用户请求的数据。

        201 CREATED - [POST]:用户新建或修改数据成功。

        202 Accepted - [*]:表示一个请求已经进入后台排队

四、Openstack的通信方式

有两种:(1)基于HTTP协议的RESTFul API方式,用于各组件之间的通信(如nova与glance 的通信)。

                 (2)RPC调用。同一组件中各个不同模块之间的通信,如nova组件中nova-compute与nova-scheduler的通信。RPC(Remote Procedure Call Protocol)——远程过程调用协议,就是实现远程操作。openstack里都是基于RabbitMQ(消息队列)实现的。

RESTful实现方式通常是http+JSON实现


小结:到这明白了,老板就是想做个web界面,让用户通过浏览器交互,传点数据啥的到我们的后台程序里。也就是REST要做的事情。REST就是一个传声筒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值