api-paste.ini对应的WSGI Application

api-paste.ini这个文件其实对应的是一个WSGI Application(app_urlmap),而且api-paste.ini的每一个section,本质上也都是对应一个WSGI Application,这些WSGI Application的关系如下图:
api-paste.ini对应的WSGI Application
图中每一个圆,都代表一个WSGI Application,为了易于描述,先给每个section对应的WSGI Appliction取一个名字,如下表。
api-paste.ini对应的WSGI Application
Neutron的RESTful API可以简单分为两大类:一类是以“/”开头,一类是以“/2.0”开头。以”/”开头的只有一个API,是查询Neutron API的版本信息,如下图:
api-paste.ini对应的WSGI Application
其余的API都是以”2.0”开头,比如network的RESTful API,如下图:
api-paste.ini对应的WSGI Application
app_urlmap就是根据url(Neutron RESTful API)的特征进行分解,它的分解算法定义在section中,具体如下:
 [composite:neutron]
#urlmap是一个WSGI Application,它根据url的特征
#决定下一步调用哪个WSGI Application
use = egg:Paste#urlmap
#如果url是以“/”开头,则调用neutronversions_composite section定义的WSGI Application
/: neutronversions_composite
#如果url是以“/2.0”开头,则调用neutronapi_v2_0 section定义的WSGI Application
/v2.0: neutronapi_v2_0
以"/"开头的url,其对应的WSGI Application在neutronversions_composite中定义;以”2.0”开头的url,其对应的WSGI Application在neutronapi_v2_0中定义。
参考