2014-01-25 1 views
1

내 애플리케이션 RESTFul을 빌드하려고합니다.하위 오브젝트에 대한 REST URL 개념

subObject에 대한 일반적인 URI 개념은 무엇입니까?

내 예 :

일부 사용자가 있습니다. 나는 /users/:id에 의해 사용자를 얻는다. 이제이 사용자를 평가할 수 있습니다. userRatings (GET, POST, PUT, DELETE)를 /users/:id/ratings 이상으로 수행하거나 /ratings/ 이상의 자체 객체로 처리하는 것이 가장 좋습니다. 아니면 둘 다 혼합 했나요?

내 질문 :

  • 내가 특정 사용자 (/ratings/?userId=1?)에 대한 평가의 목록을 얻을 어떻게 /ratings/입니다.
  • 일반적으로 URI에있는 객체가 복수인가 아닌가?

답변

2

URL 스키마는 주로 데이터 모델로 수행해야하는 작업 (예 :)에 따라 다릅니다. 당신이 그 등급 조회하는 방법 : 당신이 오직 하나의 사용자의 등급을 표시하려는 경우

  • 을, 당신은 "10 - 최고 등급의 사용자을"같은 것을 원하는 경우

  • /users/:id/ratings 아래에 넣어 당신이 사용자가 찾고있는 여기, 그래서 당신은 그 자체에서 등급를 얻을하려는 경우 URL은 /users

  • 를 됨으로써 것을 의미한다 - GET /users?toprated 같은 것을 고려 여러 사용자 (예 : "outstanding"이라는 단어가 포함 된 모든 등급을 찾으려면 /ratings/이 더 적합합니다. 검색은 자연히 GET /ratings?q=outstanding으로 표시됩니다. 여기에서 선호도는 /ratings이고 원하는 등급을 제한하는 요청 매개 변수가되어야합니다.

거대한 공용 API를 구축하지 않고 출시일 바로 많은 클라이언트를 기대하지 않는 한, 필요한 경우 이동하여 작동하고 URL 스키마를 변경하십시오.단수/복수의 토론에 관해서는

: 경로 세그먼트를 사용하여 복수의, 즉 /users, /ratings는 REST의 건물 「자원」의 블록과 "자원의 컬렉션"에서 자연스럽게 다음과 같은 이유로 사용자의 컬렉션에있다 /users (GET, POST 허용) /users/:id (GET, PUT, DELETE 허용)에 단일 사용자가 있습니다.

+0

답장을 보내 주셔서 감사합니다. 내 응용 프로그램의 구조를 계획하는 데 많은 도움을주었습니다. –