Я пытаюсь создать маршрут Pyramid для запроса PUT
в RESTful API для создания нового ресурса. Мое приложение использует обход, который работает отлично подходит для GET
и POST
:Прохождение пирамиды для запросов PUT
config.add_route('myroute', '/resources/*traverse')
PUT
С должен иметь новое имя ресурса в URL это, очевидно, не работает с PUT
, поскольку существует неизвестный ресурс в конце так обход неудачи. Я пытался создать новый маршрут для PUT
с использованием гибридной URL отправки и обходом подхода:
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