使用Mapper还可以使用resource注册路由。这种方法,可以很简便的注册一组路由。
下面介绍一下具体用法。
mapper = Mapper()
mapper.resource(member_name, collection_name, **kwargs)
注册出来的路由会有统一的路径前缀path_prefix
计算path_prefix
情况1:path_prefix在kwargs那么path_prefx=kwargs[“path_prefix”]
情况2:path_prefix不在kwargs但是设置了parent_resource, path_prefix=parent_resource[‘collection_name’]+{parent_resource[‘member_name’]_id}
例如parent_resource=dict(collection_name="/p, member_name=“mem) path_prefix=”/p/{mem_id}"
情况3:path_prefix=""
controller 不传默认使用经过处理(去掉开头和结尾的/)的collection_name
member
一个字典,每一个key是一个<action>,对应的值为请求方式<method>
会被自动加上member[‘edit’] = ‘GET’
路由 | 请求方式 | 处理action |
---|---|---|
自动添加 | ||
/<path_prefix>/<collection_name>/{id}/edit | GET | edit |
/<path_prefix>/<collection_name>/{id}/edit.{format} | GET | edit |
自动添加 | ||
/<path_prefix>/<collection_name>/{id} | PUT | update |
/<path_prefix>/<collection_name>/{id}.{format} | PUT | update |
/<path_prefix>/<collection_name>/{id} | DELETE | delete |
/<path_prefix>/<collection_name>/{id}.{format} | DELETE | delete |
/<path_prefix>/<collection_name>/{id} | GET | show |
/<path_prefix>/<collection_name>/{id}.{format} | GET | show |
通过member 字典添加 | ||
<path_prefix>/<collection_name>/{id}/<action> | <method> | <action> |
<path_prefix>/<collection_name>/{id}/<action>.format | <method> | <action> |
collection
一个字典,每一个key是一个<action>,对应的值为请求方式<method>
路由 | 请求方式 | 处理action |
---|---|---|
自动添加 | ||
/<path_prefix>/<collection_name> | POST | create |
/<path_prefix>/<collection_name>.{format} | POST | create |
/<path_prefix>/<collection_name> | GET | index |
/<path_prefix>/<collection_name>.{format} | GET | index |
根据collection的值添加 | ||
/<path_prefix>/<collection_name>/<action> | <method> | <action> |
/<path_prefix>/<collection_name>/<action>.{format} | <method> | <action> |
new
一个字典 每一个key是一个<action>,对应的值为请求方式<method>
new.update({‘new’: ‘GET’})
路由 | 请求方式 | 处理action |
---|---|---|
自动添加 | ||
/<path_prefix>/<collection_name>/new | POST | new |
/<path_prefix>/<collection_name>.{format}/new | POST | new |
根据new的值添加 | ||
/<path_prefix>/<collection_name>/new/<action>/ | <method> | <action> |
/<path_prefix>/<collection_name>/new/<action>.{format}/ | <method> | <action> |