【发布时间】:2015-12-23 20:17:47
【问题描述】:
我正在尝试在 RESTful API 中为 PUT 请求创建 Pyramid 路由,以创建新资源。我的应用程序使用遍历,这对GET 和POST 非常有用:
config.add_route('myroute', '/resources/*traverse')
由于PUT 应该在 URL 中有新的资源名称,这显然不适用于 PUT,因为末尾有一个未知资源,因此遍历失败。我尝试使用混合 URL 调度和遍历方法为 PUT 创建新路由:
config.add_route('myroute_put', '/resources/{path}/{new}', traverse='/{path}', request_method='PUT')
当且仅当只有路径段要遍历时,这才有效。新资源的名称为request.matchdict['new'] 如果我们在根级别,没有什么可遍历的,我们仍然可以通过创建辅助路由来使其工作:
config.add_route('myroute_put_root', '/resources/{new}', reqeust_method='PUT')
但是,这不是一个真正的解决方案,因为如果需要遍历多个路径段,myroute_put 仍然不匹配,例如 URL:/resources/path1/path2/new_resource
【问题讨论】:
标签: rest pyramid traversal restful-url