2013-08-15 1 views
1

Это моя первая прогулка с CherryPy, так что простите любую глупость.Диспетчер указателей черри не такой как

Я пытаюсь написать RESTful API, который частично занимается добавлением/удалением людей. Я хочу иметь возможность GET/PUT/DELETE example.com/people/.

Диспетчерский, кажется, ведет себя совершенно по-разному для индексного метода против определенной функции:

class people: 
    """This is the class for CherryPy that deals with CRUD on people""" 
    @cherrypy.expose 
    def index(self, name): 
     return name 

    @cherrypy.expose 
    def who(self, name): 
     return name 

root = webroot() 
root.people = people() 
cherrypy.quickstart(root) 

Если я называю example.com/people/tom, я получаю 404, если я буду называть example.com/people/who/tom я получаю «tom».

Может ли кто-нибудь увидеть, что я делаю неправильно? Есть ли способ передать/xxx для индексации?

ответ

2

Индексы немного отличаются, когда речь идет о аргументах URL.

Метод индекса имеет особую роль в CherryPy: он обрабатывает промежуточный URI, который заканчивается косой чертой; например, URI/orders/items/могут отображаться на основе root.orders.items.index. Метод index может принимать дополнительные аргументы ключевого слова, если запрос включает в себя параметры запроса или POST; см. «Аргументы ключевых слов». Однако, в отличие от всех других обработчиков страниц, он может не принимать позиционных аргументов

source

Однако URL из example.com/people?name=tom должен работать, как вы ожидаете.