OpenStack计算API被定义为一个RESTful HTTP服务。API利用HTTP协议的各个方面(方法,URI的媒体类型,响应代码等)和供应商免费使用的现有协议功能,如高速缓存,持久连接,以及其中包括的内容压缩。此外,供应商可能会提供支持有条件的使用ETag的GET请求,或者他们可能会响应一个请求重定向发送的Get。文献综述
2.1.1请求和响应类型
OpenStack计算API同时支持JSON和XML数据的序列化格式。请求格式使用Content-Type头指定,并须操作请求主体。请求响应格式中可以用可以使用Accept头或添加一个XML/JSON扩展指定到请求的URL。如果没有响应指定格式,JSON是默认的。如果指定格式同时使用Accept标头和查询扩展造成冲突,查询扩展名的优先级。操作的Response格式如下:
表1 两种输出格式
2.1.2 连接和说明
通常,一个资源当中会提及到另一个资源。当创建一个server的时候,必须要说明一个用来创建server的image来自何处,可以通过提供一个ID或者一个指向远程image的URL来解释这个image。当提供ID时表示image存在于当前的Openstack部署当中。为了方便起见,定义资源包含到自身的链接,这样就允许一个客户轻易的获取资源URL,而不仅仅构建资源URL。以下几种连接关系把资源连接起来:
·一个自连接的关系包含一个连接到资源的版本。当连接被继承时使用这些链接。
·一个书签连接提供到资源的永久连接,这个适合长期的存储。
·一个可替代连接包含一个资源的替代表示。比如说,一个Openstack Image可能在Openstack Image Service中有一个替代表示。
2.1.3 分页采集
为了减少服务中载入的次数,list操作会每次返回一个项目最大数的号码。这返回的最大数项目的号码是由COMPUTE提供的。为了驾驭这个集合,在URL中必须设置Limit和Marker。其中,Marker因素是前面列表最后一个项目的ID。项目是以创建时间递减顺序排序的。如果创建时间不可用则以ID排序。Limit因素用来设置页面大小。两个因素都是可选的。如果用户要求的Limit超过了部署支持的大小,那么就会引发一个越界错误。当加入NEXT关系时,用户可以追索这些collection而不需要加入marker元素。来.自/751论|文-网www.751com.cn/
2.1.4 限制
Account可能被一组预设用来管理容积的阀值限制并防止其滥用系统。系统承认两种限制:速率限制和绝对限制。速率限制是当一定时间过去后重置的阀值。绝对限制是固定的。