HTTP-запросы Backbone.js PUT завершаются с ошибкой 404 при отправке в приложение Pyramid/Cornice

Я использую Pyramid с Cornice, чтобы создать API-интерфейс для приложения Backbone.js. Мой текущий код отлично работает для GET а также POST запросы, но он возвращает 404 ошибки, когда он получает PUT Запросы. Я считаю, что это потому, что Backbone отправляет их как http://example.com/api/clients/ID, где ID номер идентификатора рассматриваемого объекта.

Мой код установки карниза:

clients = Service(name='clients', path='/api/clients', description="Clients")

@clients.get()
def get_clients(request):
    ...

@clients.post()
def create_client(request):
    ...

@clients.put()
def update_client(request):
    ...

Кажется, что карниз только регистрирует путь /api/clients и не /api/clients/{id}, Как я могу сделать так, чтобы они соответствовали обоим?

1 ответ

Решение

В документации приведен пример службы, которая имеет индивидуальный путь (/users/{id}) и путь к объекту (/users). Будет ли это работать для вас?

@resource(collection_path='/users', path='/users/{id}')

Быстрый взгляд на код для resource декоратор показывает, что он в основном создает два Service: один для объекта и один для коллекции. Ваша проблема, вероятно, может быть решена путем добавления другого Service:

client = Service(name='client', path='/api/clients/{id}', description="Client")
Другие вопросы по тегам