OpenStack之RESTful API调用(一)

本文探讨OpenStack中组件间通信的RESTful API方式,介绍REST的概念及在OpenStack中的应用。讲解了WSGI作为Python Web服务器网关接口的角色,以及PasteDeploy在配置WSGI服务中的作用。通过类和方法展示了如何实现过滤器和应用程序,为后续深入理解OpenStack的WSGI服务奠定基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面两篇文章分析了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配置文件中引用的wsgi_paste包就是自定义的wsgi_paste.py文件。

#应用程序
@wsgify
def application(request):
    r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值