Допустим, у вас есть эти ресурсы
/companies
(apple, dell, samsung)
/productTypes
(телефон, ноутбук, планшет)
/products
(iPhone 6, Galaxy Tab S6, Dell XPS 15)
Какой хороший дизайн для API REST, если вы хотите, чтобы пользователь на внешнем интерфейсе мог набирать company & productType и видеть список подходящих продуктов?
/products?productType={phone}&company={apple}
/companies/apple/productType/phone/products
/productType/phone/companies/apple/products
- Что-то еще?
Для меня # 1 кажется наиболее интуитивным и расширяемым, но когда я смотрю на большинство учебных пособий по API REST или API реального мира, мне кажется, что они чаще используют иерархическую структуру 2 или 3.
Например, с помощью API GitHub вы ПОЛУЧАЕТЕ все репозитории на /repositories
, но вы получаете все репозитории для определенного пользователя или организации на /users/:username/repos
или /orgs/:org/repos
, вместо указания параметров запроса на /repositories
Почему это так часто встречается?
Кроме того, что мне следует делать, если мне нужна конечная точка, которая возвращает один последний выпущенный продукт для компании & productType ... может быть, это?
/products/latest?productType={phone}&company={apple}