В предыдущей статье мы создали контроллер, который возвращает данные и ничего не принимает.
Сейчас добавим возможность принимать параметры. Есть два способа передать параметры get-запросом.
1) Через @PathVariable прямо в url.
Перезапусти приложения и введем url в браузере: http://localhost:8080/first/hello/ilya
Также @PathVariable может принимать параметр - имя переменной, например:
После перезапуска результат не измениться.
Есть возможность передать несколько параметров:
И перейдя по http://localhost:8080/first/hello/ilya/ilya@mail.com, мы увидим:
Отдельно хочу отметить аннотацию @ResponseBody.
Аннотация @ResponseBody сообщает контроллеру, что возвращаемый объект автоматически сериализуется в JSON и передается обратно в объект HttpResponse.
Есть возможность избавиться от нее: заменить @Controller на @RestController.
Результат не измениться.
@RestController это удобная аннотация, объединяющая @Controller и @ResponseBody , что устраняет необходимость аннотировать каждый метод обработки запросов класса контроллера аннотацией @ResponseBody.
Я обычно использую другой вариант и считаю его более предпочтительным.
2) Без использования @PathVariable.
Перезапустив проект и перейдя http://localhost:8080/first/hello?name=ilya&mail=ilya@mail.ru, мы получим те же результаты:
Также есть возможность именования параметров через @RequestParam:
Тогда url примет вид http://localhost:8080/first/hello?username=ilya&mail=ilya@mail.ru и результат не изменится.
@RequestParam может принимать еще один аргумент required (обязательный) - по умолчанию true.
На этом по этой теме у меня все. В следующей статье рассмотри метод POST.
Ссылка на видео: