介绍class routes_mapper.Mapper的基本用法,需要从下面这句代码入手:
mapper.connect('index', '/', controller=Index(RESOURCES))
代码中的三个参数的基本含义,如下表:
这三个参数,其实表达了一个规则:一个HTTP Request过来时,应该执行哪个函数(或者是一个符合WSGI Application规范的class的实例)的规则。
我们想象一下这个规则,如下表:
这样的规则,对应的代码如下:
mapper.connect('index', 'networks', controller=list_networks)
mapper.connect('show', ' networks/{network_id}', controller=show_network)
mapper.connect('delete', ' networks/{network_id}', controller=delete_network)
按照这样的写法,其实一共也不需要多少代码。对应到Neutron的资源,1个资源6行代码即可。这样的写法非常简洁明了。
但Neutron的代码并非如此实现,它的代码纷繁复杂。