2012-10-23 3 views
2

Cornice과 함께 Pyramid를 사용하여 Backbone.js 애플리케이션이 사용할 API를 만듭니다. 현재 코드가 GETPOST 요청에서 완벽하게 작동하지만 PUT 요청을 수신하면 404 오류가 반환됩니다. Backbone이 http://example.com/api/clients/ID으로 보냈기 때문입니다. 여기에서 ID은 해당 개체의 ID 번호입니다.Backbone.js Pyramid/Cornice 앱으로 보내면 HTTP PUT 요청이 404 오류와 함께 실패합니다.

내 커튼 설치 코드는 다음과 같습니다

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}를 등록 것으로 보인다. 어떻게 둘 다 일치시킬 수 있습니까?

답변

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") 
+0

두 번째 제안은 효과가 있습니다. @resource를 사용하여 시도했는데 GET 및 PUT 호출에 문제가 없었지만 POST 호출을 인식하는 것을 거부했습니다 (POST() 및 collection_post()로 시도했지만 501을 계속 사용함) – paul88888

관련 문제