Один адрес эндпоинта и четыре ошибки в нём
На практическом мок-собесе я попросил ученика написать запрос: получить всех собак трёх лет из базы ветклиники. Он написал так:
http://api.v1/animals/dogs/year/3
Ошибок здесь четыре, и все типичные для джуна.
Нужен путь от корня: /api/v1.
Между api и v1 стоит точка, нужен слэш, версия в пути идёт отдельным сегментом.
Нет метода. Интервьюер должен сразу видеть, что вы читаете данные, значит GET.
И самое важное, фильтры спрятаны в путь. Путь описывает ресурс, dogs и year/3 - условия выборки, их передают query-параметрами после знака вопроса, через амперсанд.
Получается так:
GET /api/v1/animals?species=dog&age=3
Следом интервьюер обычно спрашивает, что делать, если фильтров тридцать. Вариант с телом запроса нормальный, только выносите его в отдельный ресурс поиска, POST /api/v1/animals/search, чтобы его не путали с созданием животного.
А как вы передаёте пагинацию: page и size или offset и limit?