2012-07-31 3 views
3

프로젝트, 회사, 디렉터가 있다고 가정합니다.RESTful URI 디자인 - 사용자 친화적 인 리소스를위한 다중 URI입니다.

다음 관계는 적용

  • 프로젝트가 한 회사
  • 한 회사가 한 이사
  • 이사는 회사가 여러 프로젝트를 관리 할 수 ​​
  • 여러 회사의 이사가 될 수

저는 URI 디자인을 다음과 같이 상상했습니다 :

GET /projects 
GET /projects/{id} 
GET /projects/{id}/company 
GET /projects/{id}/company/director 
PUT /projects/{id}/company   # makes new/overwrite company 
POST /projects/{id}/company   # updates company 
PUT /projects/{id}/company/director # makes new/overwrite director 
POST /projects/{id}/company/director # updates director 

그것은 예컨대 :

POST /companies      # makes a new company 
POST /companies/{id}     # updates company 
GET /companies/{id} 
POST /directors      # makes a new director 
POST /directors/{id}     # updates director 
GET /directors/{id} 

이 좋은 URI 디자인 모범 사례에 따라인가 좋아/사용자 친화적 같은 자원에 대한 여러 URI를 가질을 수 있을까요? 위의 URI 디자인에 대한 장단점은 무엇입니까?

답변

0

URL의 첫 번째 형태는 하나의 프로젝트가 하나의 프로젝트에 속하고 하나의 디렉터가 하나의 회사에만 속한 트리 구조를 의미합니다. 이 경우인가요?

아니요, 그렇지 않으면 두 번째 URL 형식을 선호합니다. 암시 적 트리 구조없이 서로 옆에 3 가지 자원 유형이 있습니다. 리소스 표현 내에서 링크를 사용하여 프로젝트에서 회사로 이동하여 디렉터로 이동합니다.

+0

아니요, 기업은 여러 프로젝트를 관리 할 수 ​​있으므로 "평면"URI 솔루션이 더 좋게 보입니다. GET 수를 줄이기 위해 "GET/projects/{1}/company"를 지원하는 것이 좋을까요? – Parnas