2016-09-06 4 views
0

나는 GET이있는 두 개의 리소스를 가지고 있으며 하나씩 다른 리소스와 연관시키고 싶습니다.연관을위한 최상의 종점 디자인

그래서 우리는 사용자의 목록 및 학교

GET/API/사용자/API/사용자/5

GET/API/학교/API/학교/8

의 목록을 가지고 말할 수

각 학교에는 사용자 목록이있을 수 있습니다. 또한 각 사용자는 학교 목록을 가질 수 있습니다. 연결을 수행하는 가장 좋은 끝점 디자인은 무엇입니까?

예 :. PUT/API/사용자/5/학교

또는 PATCH/API/학교 (신체 JSON의 OBJ 8을 보낼 수)/5 (단지 사용자 목록에 사용자 OBJ를 보낼 목록에서 사용자를 누락하지 않습니다 삭제됨)

감사합니다. 감사합니다.

답변

0

사용자 리소스와 학교 리소스 및 RESTful 인터페이스 사이의 다 대다 관계 인 것처럼 보이며 이러한 관계를 링크로 표시하여 이러한 리소스 간의 관계를 설명하는 결과/문서를 반환 할 수 있습니다.

따라서 사용자는 학교 목록을 가질 수 있으며 /api/users/5/schools으로 표시 할 수 있으며 그 링크는 school/{id} 링크와 같이 학교 링크 목록이 될 수 있습니다.

그리고 학교는 여러 사용자가있는 경우 그 반대 /api/schools/8/users 링크 목록을 다시 보낼 수있는 것 인 단지 괜찮지 만, 때문에 문제가 될 것이라고이 관리 조심하십시오 user/{id}

기술적으로 각 연결 지점 :

PUT 또는 PATCH와 같은 작업을 수정하는 경우 (특히 PATCH의 경우) 페이로드 형식으로 json을 사용하는 경우 JsonPatch으로 이동하십시오. 어쨌든 이러한 경우에 /api/users/5/schools과 같이 하나를 업데이트하면 schools/{id}/users의 캐시를 무효화해야하며 대부분의 경우이를 확인하지 못할 수도 있습니다.

가장 쉬운 방법은 사용자와 schoool 간의 멤버쉽을 나열하는 membership 리소스이며, 쉽게 캐시 할 수 있으며 쉽게 확장 할 수 있습니다. :)

자세한 내용은 다음 페이지를 참조하십시오. here

관련 문제