Представим, у нас есть аккаунт, мы получаем его через
/accounts/:id
У аккаунта есть профиль
/accounts/:id/profiles/:id
У профиля есть тэги
/accounts/:id/profiles/:id/tags
И теперь я хочу сделать апишку для получения информации о каждом тэге. Или хочу его изменить. С одной стороны мы можем использовать
GET /accounts/:id/profiles/:id/tags/:id
Но что если у тэга есть еще подколлекции? Цвет (и пускай внутри цвета еще набор для простоты). В конце концов мы можем получить
GET /accounts/:id/profiles/:id/tags/:id/color/:id/more-fields/:id/more-fields/:id/more-fields/:id ....
В конце-концов мы будем иметь очень длинный uri. Из-за этого очень хочется что-то выкинуть. Например /accounts и получить
GET /profiles/:id/tags/:id/color/:id/more-fields/:id/more-fields/:id/more-fields/:id ....
Я понимаю, что в таком случае мы теряем возможность создать какую-то еще сущность profile не относящуюся к /accounts. Но что если "скорее всего этого не произойдет, а если произойдет назовем по другому"?
На сколько плохая практика выкидывать ведущие ресурсы из длинных uri? На сколько у вас они длинными получаются? А что если в конце концов он будет приближаться к лимиту на длину url строки (в особенности с гет параметрами)?