JSON Как правильнее структурировать формат запроса

Пишу REST приложение на Spring Boot с использованием Spring MVC.

При написании контроллера встал вопрос как правильно распределить данные, приходящие с запросом от пользователя: какие из них передавать с параметрами запроса (@RequestParam), какие через переменную пути (@PathVariable), а какие передавать в виде пар ключ-значение в самом теле JSON'а (@RequestBody)?

Если подробнее, то уже есть метод, который возвращает коллекцию объектов сущностей. Он доступен по адресу http://localhost:8080/rest/tasks с ключом 'page' в самом теле JSON'a.

Сейчас пишу метод, который по запросу должен возвращать один из объектов сущности (сущность Task), где пользователь должен передать каким-то способом id объекта и номер страницы (у каждого объекта Task есть список объектов Comment, которые разбиты на страницы).

Так вот вопрос: каким образом ЛУЧШЕ указать id, номер страницы (page) и вообще указание на то, что это запрос на получение одного объекта?

То есть например, если я хочу получить страницу под номером 3 объекта Task с id == 17 скажем, то лучше сделать такой формат запроса:

http://localhost:8080/rest/tasks
{
    "id" : 17
    "page" : 3
    
}
    

или например такой:

http://localhost:8080/rest/tasks/view/17?page=3
{
    
}
    

? Или вообще какой? То есть так называемые лучшие практики хотелось бы узнать. Спасибо.


Ответы (1 шт):

Автор решения: misha plotnikov

Как я понял, разницы особой нету. Я бы сделал с помощью второго способа

Только прикола не понял. Это первая ссылка, ты там ещё jaon какой-то передал http://localhost:8080/rest/tasks

Потом сделал вторую ссылку, она отлична от первой, если я правильно понимаю проблему, то можно передать два аргумента в ссылке сразу

http://localhost:8080/rest/tasks?id=17&page=3

Это делается с помощью знака &

→ Ссылка