Backbone.js HTTP PUT请求在发送到Pyramid / Cornice应用程序时失败,并出现404错误

时间:2012-10-23 08:50:51

标签: python backbone.js pyramid cornice

我正在使用Pyramid和Cornice来创建一个供Backbone.js应用程序使用的API。我当前的代码适用于GETPOST个请求,但在收到PUT个请求时返回404错误。我相信这是因为Backbone将它们发送为http://example.com/api/clients/ID,其中ID是相关对象的ID号。

我的Cornice设置代码是:

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):
    ...

似乎Cornice只注册路径/api/clients而不是/api/clients/{id}。我怎样才能使它们匹配?

1 个答案:

答案 0 :(得分:3)

documentation给出了一个具有单独路径(/users/{id})和对象路径(/users)的服务示例。这对你有用吗?

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

快速浏览code for the resource decorator表明它主要创建两个Service:一个用于对象,一个用于集合。您可以通过添加另一个Service

来解决您的问题
client = Service(name='client', path='/api/clients/{id}', description="Client")