Динамический URL с CherryPY MethodDispatcher

Мне нужно настроить URL-адрес стиля RESTful, который поддерживает следующую схему URL-адресов:

  • /родитель/
  • /родитель/1
  • /родитель/1/дети
  • /родитель/1/дети/1

Я хочу использовать MethodDispatcher, чтобы каждый из вышеперечисленных мог иметь функции GET/POST/PUT/DELETE. У меня это работает для первого и второго, но не могу понять, как настроить диспетчер для дочерней части. У меня есть книга, но она едва охватывает это, и я не могу найти ни одного образца в Интернете.

Вот как я настроил MethodDispatcher в настоящее время.

root = Root()
conf = {'/' : {'request.dispatch': cherrypy.dispatch.MethodDispatcher()}}    

cherrypy.quickstart(root, '/parent', config=conf)

Любая помощь будет оценена по достоинству.


person Shawn Swaner    schedule 17.10.2009    source источник


Ответы (1)


http://tools.cherrypy.org/wiki/RestfulDispatch может быть тем, что вы ищете за.

В CherryPy 3.2 (только что вышедшей из бета-версии) будет новый метод _cp_dispatch, который вы можете использовать в дереве объектов, чтобы делать то же самое или даже изменять обход по мере того, как это происходит, что-то вроде _q_lookup и _q_resolve Дон Кихота. См. https://bitbucket.org/cherrypy/cherrypy/wiki/WhatsNewIn32#!dynamic-dispatch-by-controllers

person fumanchu    schedule 17.10.2009
comment
Идеальный. Это именно то, что мне нужно, но я не мог его найти, потому что я был сосредоточен на MethodDispatcher в своем поиске в Google. Спасибо. - person Shawn Swaner; 18.10.2009
comment
Ссылка на ссылку Dynamic Dispatch by Controllers изменилась. Вы можете найти его здесь, bitbucket.org/cherrypy/cherrypy/wiki/WhatsNewIn32. - person elarson; 08.12.2011
comment
Спасибо за указание на метод _cp_dispatch! Я нашел это элегантным решением аналогичной проблемы в структуре моего приложения. - person Kenneth Wilke; 19.03.2014