2016-11-03 1 views
0

REST-API을 디자인 중이며 현재 다음 질문을 고수하고 있습니다. 엔드 포인트REST - resouces의 주소 지정 가능성 (구성, 컬렉션)

/foods/fruits/apple 
/foods/fruits/pinapple 
/foods/meat/chicken 

각각의 고유 (only one apple, one chicken)이지만, fruits의 다른 종류 (예를 들어 파인애플)있을 수 있습니다 : 예를 들어

/foods/fruits/{fruit} 
/foods/meat/{meat} 

예를 들어 나는 다음과 같은 structrue을 얻었다. 내 service 요구 사항 중 하나

  • 하나 개의 특정 과일 (사과),
  • 모든 과일 (모든 accessable 한 과일로 가득 컬렉션 ressource -> 사과, 파인애플)으로 돌아갑니다 그러나 (
  • 또는 전체 음식을 이 디자인으로 과일의 컬렉션 능숙와 고기)

의 구성은 내 ressource는) 주소에 대한 3 URIs (composition, collection, endpoint이지만, 2의 최대해야한다이것은 편안한 디자인입니까? Richardson Maturity Model 보면

+0

아무도 아이디어가 없습니까? – Theiaz

답변

1

이 디자인을 사용하면 내 ressource는 3 개의 URI (composition, collection, endpoint)에 대해 주소 지정이 가능하지만 최대 값은 2 여야합니다. 이것은 편안한 디자인입니까?

가이드 라인의 최대 값은 2가되어야합니까? -

그러나 어느 쪽이든 그 세 URI를 동일한 리소스에 대한 없습니다 3 가지 URI를, 그들은 세 가지 자원입니다 :

  1. 식품 자원
  2. 특정 유형의 식품의 모음
  3. 특정 유형의 음식

이전 자원은 다른 자원으로 구성 될 수 있지만 가장 좋은 곡물 (특정 유형, 예 : app le)은 3 개의 URI를 통해 주소 지정이 가능합니다.

사용하면 다음과 같은 HAL 컴포지션 표현이 명확하게 포함 된 자원은 또한 자신의 엔드 포인트를 통해 직접 사용할 수 있는지 보여 포함 자원을 활용 할 수있는 하이퍼 미디어 형식을 사용하는 경우.

2

, 당신은 종류와 이름이 같은 특성을 가진 일반적인 Food 자원 및 엔드 포인트를 가질 수있다, 다음 요구 사항과 같이 접근 할 것 :

  • GET /api/food?name=apple
  • GET /api/food?type=fruit
  • GET /api/food
+0

답변 해 주셔서 감사합니다. 나는 이것이 도움이 될 것이라고 생각한다. – Theiaz