2010-02-18 2 views
0

라우터 설정에서 mapResources를 사용하여 나의 4 CRUD 액션을 성공적으로 만들었습니다. 하지만 어떤 것들은 실제로 RESTful 필터해야합니다. 어떤 필터를 RESTful으로 필터링합니까? 예를 들어 삭제 작업에 대한 나머지 호출을 허용하고 싶지는 않지만 삭제 조치를 유지해야 조정할 수 있습니다.CakePHP RESTful 액션

답변

0

나는 당신이 여기에 전문 용어가 섞여 있다고 생각합니다. :-)

모든 동작은 정의에 따라 RESTful이며 HTTP 프로토콜에 내장 된 concept입니다. "응용 프로그램을 RESTful하게 만드는 것"은 대개 같은 의미로 GET, POST, PUT 또는 DELETE 개의 요청과 동일한 URL에서 다르게 반응하는 개념을 사용한다는 것을 의미합니다. 예 : 모든 요청이 HTTP 방법 (일반적으로 GET) 중 하나를 사용하기 때문에

GET http://example.com/users  -> Receive a list of all users 
POST http://example.com/users  -> Creates (a) new user(s) 
GET http://example.com/user/42 -> Receives info about user #42 
PUT http://example.com/user/42 -> Edit/replace the information of user #42 
DELETE http://example.com/user/42 -> Delete user #42 

따라서, 당신이 아무것도하지 않는 경우에도 모든 요청은 항상 편안하고있다.

당신이 찾고있는 것은 AuthComponent과 같은 것을 사용하는 일반 오래된 사용자 권한 처리입니다.

+0

모든 HTTP 요청이 정의에 의해 RESTful 인 것은 아닙니다. 하나의 REST 제약은 메시지가 자기 설명 적이라는 것이다. 즉 결과를 산출하는 데 필요한 모든 정보가 요청에 포함됩니다. 비 안정적인 요청의 한 예는 인증 된 GET을 수행하는 것입니다. /twitter.com은 내가 팔로우하는 사람들의 트윗을 반환합니다. 다른 사람이 /twitter.com을 얻는다면 목록을 얻을 것입니다. 이는 URI가 자원을 식별해야한다는 개념과 일치하지 않습니다. –

+0

@Darrel 일반적으로 동의하지만, 이것은 내가 두려워하는 의미론에 관한 것입니다. :) 나는이 경우 * 응용 프로그램 *이 RESTful이 아니라고 말하고 싶습니다. OP 질문과 관련된 요청은 복구 할 수 없습니다. OP는 "비 RESTful"요청을 필터링 할 수 없습니다. 애플리케이션의 응답이 궁극적으로 RESTful인지 아닌지를 결정하기 때문입니다. – deceze

+0

@Darrel 추가 생각하면 ...받은 콘텐츠는 요청에 따라 달라지며, 특히 요청과 함께 전송되는 쿠키 정보에 따라 달라집니다. 똑같은 요청을 보내면 똑같은 대답을 얻습니다. URI는 여전히 "twitter posts"리소스를 나타냅니다. RESTfulness는이 자원이 매번 모든 사람에게 동일하게 적용되도록 지시하지 않습니다. 그러면 콘텐츠를 업데이트하는 모든 사이트가 유감스럽게 보일 것입니다. FTP와 같은 프로토콜을 사용하여 RESTfulness를 대조하십시오. 서버와 클라이언트 모두 세션을 거쳐야하며, 매번 다를 수 있으므로 특정 리소스를 확보해야합니다. – deceze

0

나는 내가해야 할 일을 알아 냈다. 내가 원하는대로 사용할 수있는 방법을 사용하려면 몇 가지 사용자 지정 나머지 라우팅을 수행해야합니다.