2017-02-22 1 views
0

리소스 검색을위한 RESTful URL 디자인과 관련하여 couplequestions입니다. 관심있는 부분은 리소스 ID 이외의 다른 리소스에 의해 단일 리소스에 대한 RESTful URL입니다.단일 리소스를 검색하기위한 RESTful URL 디자인

예를 들어 사용자의 ID와 리소스 URL은 /rest/user/<id>입니다. 전자 메일 주소로 단일 사용자를 검색 할 수있게하고 싶습니다 (시스템에서 고유 한 것으로 보장됩니다).) /rest/user/email/[email protected]

여기 email:[email protected] 간주됩니다 - - /rest/user/email이 정의 될 수 있지만 개별 자원()

B) /rest/user/email:[email protected]에 액세스하기위한 별도의 리소스를 만들 :

대안 내가 함께 왔어요 사용자에 대한 대체 식별자입니다. 따라서 대체 ID를 사용하는 동일한 자원 종단점입니다.

C)- 이것은 RESTful 검색이지만 재귀 적 검색입니다. N 배열 리소스에 직접 참조하지 않다 따라서 제로 또는 하나의 항목을 포함하고

D) /rest/user/[email protected] - (C) 등의 의미는 다른

와 마찬가지로 검색 API 설계는 함께 검색 확장되어야 시스템에서 제공하는 다른 고유 ID (외부 ID, 전화 번호, SSN 등).

특정 사용자 (서비스에서 전역 적으로 사용될 수 있음)를 참조하는 대체 방법을 정의하고 기존 자원 끝점을 다시 사용하기 때문에 옵션 B쪽으로 기울이고 있습니다. 이것은 GET뿐만 아니라 PUT과 DELETE로 확장 될 수 있습니다. 그러나 그것은 매우 RESTful 한가?

+0

[REST API 디자인 - 다른 매개 변수이지만 동일한 URL 패턴을 사용하여 REST를 통해 리소스 가져 오기] 가능한 중복 (http://stackoverflow.com/questions/20381976/rest-api-design-getting-a-resource-through) -rest-with-different-parameters-하지만) – vtortola

답변

0

/rest/user/[email protected]에서 '/'는 레벨 관계를 나타내는 데 사용됩니다./rest/customer/orders/order1, 고객이 주문 콜렉션을 가지고 있으며, orders에는 order1이라는 주문이 있습니다.