我正在使用Pyramid和Cornice来创建一个供Backbone.js应用程序使用的API。我当前的代码适用于GET
和POST
个请求,但在收到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}
。我怎样才能使它们匹配?
答案 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")