2011-10-26 5 views
1

Kohana 웹 사이트의 ORM 개체에 대한 REST 인터페이스 작업 중입니다. 지금까지 두 개의 컨트롤러를 가지고 :일반적인 CRUD 작업을 넘어서 REST API를 확장하는 방법

Controller_Api_Product

URL: api.example.com/product/<product_id>

Controller_Api_Category

URL: api.example.com/category/<category_id>

이들 각각은 다음과 같은 방법을 받아 성공적으로 기록을 업데이트합니다.

  • POST :
  • GET 만들기 :
  • PUT 읽기 :
  • 가 삭제 업데이트 :

내가 ORM의 has_many 속성을 처리하는 몇 가지 방법을 만들고 싶습니다 삭제합니다. 예를 들어 제품과 카테고리를 서로 연결할 수 있기를 바랍니다. 이 관계는 별도의 테이블 (products_categories)에 저장되어 있습니다. 그 테이블에 ORM 모델이 없습니다 (추가 관계 데이터를 저장하지 않기 때문에).

관리하는 가장 좋은 방법은 무엇입니까? 테이블에 대한 ORM 모델을 만들어야하고 컨트롤러가 고유해야합니까?

Controller_Api_Product_Category는

URL: api.example/product_category/<product_category_id>

나는 다른 HTTP 방법 (예. LINK)를 사용해야합니까?

Controller_Api_Product_Category

URL: api.example/product/<product_id>

내가 특정 모델에 바인딩되지 않은 다른 완전히 다른 컨트롤러가 있어야 방법 LINK 호출?

Controller_Api_Link

URL: api.example.com/link/product/<product_id>/category/<category_id>

별도의 링크 컨트롤러를 갖는 분명 어떤 물체도 사용할 수 있습니다. 나는 REST API를 일반적인 CRUD 동작 이상으로 확장하는 방법에 대해 약간 혼란 스럽다.

답변

1

이미 테이블에 링크가 저장되어 있다면 다른 개체와 마찬가지로 사용해야합니다.

URL: api.example.com/links/<link_id> 

링크 자체에 CRUD 작업을 수행하십시오.

+0

맞아요, 각 데이터베이스 테이블에 대한 컨트롤러 (ORM 모델과 반대). –

관련 문제