저는 서버 측 웹 개발에 익숙하지 않고 최근에 RESTful API를 구현하는 것에 대해 많은 것을 읽었습니다. REST API의 한 가지 측면은 클라이언트가 상호 작용할 수있는 리소스를 식별하는 URI 계층을 구조화하는 방법입니다. 특히 저는 다른 리소스 유형으로 구성된 리소스의 경우 계층 구조를 만드는 방법과 수행 할 작업을 결정하는 데 어려움을 겪고 있습니다.REST 리소스 계층을 구조화하는 방법은 무엇입니까?
다음은 희망하는 의미를 보여주는 예입니다. 사용자가 다른 사용자의 제품을 구매할 수있는 웹 서비스가 있다고 가정 해보십시오. 따라서이 간단한 경우에는 두 개의 최상위 리소스 사용자 및 제품이 있습니다. 각 계층 참조 하위 집합에서 개체를 두 경우 모두
/products
/{id}
/name
/category
/description
/keywords
/buyer
/seller
: 제품의
/users
/{id}
/location
/about
/name
/seller_rating
/bought
/sold
: 여기가 URI 계층 구조, 사용자의
을 구성하기 시작했다 방법 다른 계층에있는 개체의 예를 들어 /users/{id}/bought
은 일부 사용자가 구입 한 제품 목록이며 /products
의 하위 집합입니다. 또한 /products/{id}/seller
은 특정 제품을 판매 한 사용자를 나타냅니다.
이러한 URI의 다른 객체 또는 다른 객체의 하위 집합은 API가 /users/{id}/bought/id/description
및 /products/{id}/buyer/location
과 같은 것을 지원해야하나요? 이러한 유형의 URI가 지원되는 경우 /users/{id}/bought/{id}/buyer/bought/{id}/seller/name
과 같은 것을 멈추게하거나 똑같이 뒤죽박죽이되는 것은 무엇입니까? 또한이 경우 서버의 라우터가 URI의 임의의 길이를 해석해야하므로 라우팅을 어떻게 처리합니까?
그래서, 당신이 말하고있는 것은 시스템의 모든 자원이 정확히 ** 하나를 가지고 있다는 것입니다 :
그리고 제품에 대한
, 당신의 sitation에 내가 사용해야합니까? 왜냐하면 모든 것이 훨씬 간단 해지기 때문입니다. 위의 예에서 API를 통해 일부 제품의 판매자를 공개하고 싶다면 (제품에는 판매자가 하나뿐입니다) 무엇을 권하고 싶습니까? 나는 사람들이 * GET/products/{id} *를 사용하여 판매자와 함께 JSON 객체를 반환하도록해야 하는가? – martega'/ products/{id}'에 대한 JSON은 귀하의 편의를 위해 중첩 된 사용자 객체를 포함 할 수도 있고 해당 사용자에게 URL을 제공 할 수도 있습니다. 선택 사항이며 두 가지가 별도로 존재한다는 사실을 변경하지 않습니다. – Anri
btw이면 다른 서비스의 API를 살펴 보는 것이 좋습니다. 예 : https://developer.foursquare.com/docs/venues/venues – Anri