2012-07-11 4 views
0

나는이 자습서를 철저히 따르고 있으며 훌륭한 자습서라고해야합니다!Zend_Rest_Controller 및 Zend_Rest_Route 사용 사례

http://www.techchorus.net/create-restful-applications-using-zend-framework

나는 Zend_Rest 추상 메소드의 전체 개념에 대해 단지 혼란 스러워요. 예에서, 당신은 단지 내가 전체 아키텍처 만 추상적 인 방법으로 제한되는 경우 알아 내기 위해 노력하고있어, 이러한 기능은 의미가 있지만 PUT이

삭제

인덱스 POST를 참조 GET. 사용자가 API를 사용하여 특정 필드를 업데이트하려는 사용자 사례 또는 사용자가 활동 테이블을 업데이트하려는 다른 사례를 생각하고 있습니다. 이 두 테이블의 비즈니스 로직은 하나의 RESTful API 컨트롤러에서 다루어진다. 각 테이블에 대해 특정 업데이트/게시 메서드를 만들어이 문제를 해결하고 업데이트 할 필드를 정의하는 함수 매개 변수를 가져야합니다. 이런 종류의 구현은 REST와 일치 할 것인가? 그렇다면 POST, GET, PUT, DELETE 메소드를 넘어서는 방법은 무엇인가?

답변

0

REST 아키텍처는 리소스에 대한 계층 적 관계를 지원하지 않으며 리소스는 어떤 식 으로든 데이터베이스에 바인딩되지 않습니다. "사용자"리소스에는 사용자 테이블의 사용자 이름 및 암호 필드에 매핑되는 하위 자격 증명 "자격 증명"이있을 수 있으므로 "domain.com/users/{userId}/credentials"에서 PUT 요청을 수행 할 수 있습니다. Controller를 생성하고 UserCredentials를 구현하면이를 구현할 수 있으며 업데이트 논리는 putAction에 포함됩니다.

젠드에서 작동하려면이 라우팅을 수정해야합니다. How to set up Hierarchical Zend Rest Routes?

+0

매우 엄격한 솔루션처럼 보이므로 데이터베이스 스키마가 변경 될 때마다이 모든 사용자 지정 라우트도 업데이트해야합니다. 난 그냥 또 다른 간단한 해결책을 생각해, 만약 내가 테이블과 필드를 매개 변수로 가져오고 그냥이 함수 func_get_args()를 사용하여 모든 매개 변수를 얻으려면 키 => 값으로 정렬 정의 할 수 있습니까? – shiva8

+0

데이터베이스 구조를 캡슐화하여 자원 및 URL의 변경을 최소화합니다. 데이터베이스 구조를 반영하지 않도록 자원을 설계하십시오. PUT 요청에는 여러 키 - 값 쌍이 포함될 수 있습니다. – siimsoni