OpenStack之RESTful API调用(一)

前面两篇文章分析了OpenStack同一组件下不同模块之间的通信方式——RPC。这篇文章我们来继续看一下OpenStack中的另一种通信方式——RESTful API。

在OpenStack中,RESTful API用于不同组件之间的通信。先来简单的了解一下REST吧。

REST构建于HTTP协议之上,遵循并扩展和规范了传统HTTP协议中的标准方法,以下是RESTful API定义的标准方法:

GET:查询资源

POST:增加资源

PUT:更新资源

HEAD:验证,包括用户身份的验证和资源的验证

DELETE:删除资源

同时,REST要求URL的格式遵守统一的规范,所有资源都具有唯一的ID。具体到OpenStack中,每个资源都有一个UUID,作为全局唯一的标识。

在OpenStack中,所有的Web服务都是通过WSGI部署的。所谓WSGI是Python Web Server Gateway Interface的缩写,是Python应用程序或框架和Web服务器之间的一种接口。简而言之,在Python Web 开发中,服务端程序可以分为两个部分,一是服务器程序,二是应用程序。前者负责把客户端请求接收,整理,后者负责具体的逻辑处理。WSGI 是服务器程序与应用程序的一个约定,它规定了双方各自需要实现什么接口,提供什么功能,以便二者能够配合使用。

本着设计的“开闭原则”,OpenStack通过配置文件来配置WSGI服务的应用程序,PasteDeploy就是专门定制WSGI服务的开发包。

来看一个简单的利用PasteDeploy定制的WSGI服务。

1)api-paste.ini配置文件

OpenStack中,大部分组件的WSGI服务的配置是保存在api-paste.ini文件中的。这里也用这样的方式,api-paste.ini配置文件如下

[app:main]
paste.app_factory = wsgi_paste:app_factory
以上配置中,第01行定义了名为main的app。app(应用程序)是PasteDeploy定义的一类部件。除了app外,PasteDeploy还定义了filer(过滤器)、pipeline(管道)和composite(复合体)等部件。第02行指定了main应用程序对应的工厂方法,该工厂方法必须返回一个方法的实例,该方法便是处理HTTP请求的应用程序。这个应用程序定义在wsgi_paste包的app_factory方法。

2)wsgi_paste.py文件

在api-paste.ini配置文件中引用的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值