2014-01-14 3 views
0

나는 처음으로 안일 한 API를 만들고 있습니다. 예를 들어 설명해 보겠습니다. 제품이 여러 범주에 연결될 수 있습니다.복수 선택기를 다루는 모범 사례

클라이언트 측에서는 제품 세부 정보를 채울 수있는 하나의 양식 만 원하고 카테고리를 선택할 수있는 다중 선택기가 있습니다.

그런 일을 처리하는 가장 좋은 방법은 무엇입니까? 하나의 API 호출/API/제품에 데이터를 게시/배치하고 카테고리를 처리합니까? 또는 클라이언트에서 카테고리 선택과 제품 세부 정보를 분리하고 두 개의 API 호출 (제품 세부 정보 용, 카테고리 선택 용)을 만듭니다.

내가 가장 좋은 옵션을 찾고 있습니다. 둘 다 가능합니다. 그리고 단 하나의 API 호출이 가장 쉽습니다. 그러나 나는 엄격히 편안하고, 나는 2 & 파이 호출이 필요합니다 ...

답해 주셔서 감사합니다!

답변

0

단일 API 호출에 문제가없는 것으로 보입니다.

POST/PUT ~ /api/product을 입력하고 제품 세부 정보와 제품이 속한 범주를 매개 변수로 전달할 수 있습니다.

추가의 경우, /api/product으로 POST를 수행하고 카테고리 목록과 함께 제품 이름, 가격 등과 같은 매개 변수를 전달할 것이라고 가정합니다.

마찬가지로 업데이트의 경우 PUT에서 /api/product/<productid>까지 위의 매개 변수를 전달할 수 있습니다.

0

'제품'은 여기에있는 리소스입니다.

따라서 'api/products'는 제품 목록을 제공합니다. 'api/products/{{id}}'는 제품의 세부 정보를 제공합니다.

하나의 아이디어는 카테고리 자체를 처리하는 것입니다. 각 제품은 0 개 이상의 카테고리에 가입합니다. 따라서 'api/categories'는 카테고리 목록을 제공합니다. 이제 제품에 카테고리를 매핑하는 'product_subscription'이라는 또 다른 리소스가 있습니다. 즉 'api/product_subscriptions'는 다음과 같은 목록을 제공합니다.

{ 
    "productId":"someid" 
    "categoryId":"some_category_id1" 
}, 
{ 
    "productId":"someid" 
    "categoryId":"some_category_id2" 
}, 
{ 
    "productId":"someid" 
    "categoryId":"some_category_id3" 
} 

쿼리 매개 변수를 사용하여이 목록을 필터링 할 수 있습니다.