2

我正在使用 Pyramid 和Cornice来创建一个供 Backbone.js 应用程序使用的 API。我当前的代码可以完美地处理GETPOST请求,但它在收到PUT请求时返回 404 错误。我相信这是因为 Backbone 将它们发送为http://example.com/api/clients/IDID所讨论对象的 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 只注册了 path/api/clients而不是/api/clients/{id}. 我怎样才能让它两者都匹配?

4

1 回答 1

3

文档提供了一个服务示例,该服务具有单独的路径 ( /users/{id}) 和对象路径 ( /users)。这对你有用吗?

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

快速浏览一下装饰器的代码,可以resource看出它主要创建两个Service:一个用于对象,一个用于集合。您的问题可能可以通过添加另一个来解决Service

client = Service(name='client', path='/api/clients/{id}', description="Client")
于 2012-10-23T14:06:46.373 回答