RESTful API简介
RESTful API就是RESTful风格的API,所谓REST,即表现层状态转化,这里的“表现层”,指的是资源的表现层,访问资源时伴随产生的数据和状态的变化即为“状态转化”。通常对于REST来说有如下4种基本操作:
- POST:创建资源
- PUT:更新资源
- DELETE:删除资源
- GET:获取资源
对于REST架构来说,每一个URL代表了一种资源,一个URL路径往往是和某个具体操作相关联的,我们在理解REST框架时,最主要的就是要理解框架中URL路由是如何确定的;客户端与服务器之间,传递的是某种资源的某种表现层;客户端主要通过上述四种基本操作实现对服务端资源的基本操作。
在REST架构中还有一个比较重要的概念是WSGI(Web Service Gateway Interface),它起到了连接Web Server与Python App的作用。一方面,它可以让Web Server知道应该如何去调用Python APP以及把用户请求发送给Python APP;另一方面,它会告诉Python APP用户具体发出的请求是什么以及如何把执行结果返回给相应的Web Server。
在目前的Openstack中主要有两种基本框架:基于Pastedeploy和Routes的REST API框架和基于Pecan的REST框架,前者目前是openstack中使用的比较多的REST框架,后面我们将结合nova-api服务来具体讲解基于Paste和Routes的API框架
基于Pastedeploy和Routes的API框架
WSGIService源码
之前的nova源码解析https://blog.csdn.net/weixin_41977332/article/details/104569906中有提到nova-api服务的启动,调用的是nova.cmd.api中的main()方法,代码如下所示,在该方法中,主要是通过第59行server=service.WSGIService(api,use_ssl=should_use_ssl)和第60行的launcher.launch_service(server, workers=server.workers or 1)启动了一个WSGI服务。
第59行server=service.WSGIService(api,use_ssl=