DennisKingsman
@DennisKingsman
Студент

Как работать с rest api используя json и пользовательский ввод одновременно?

Здравствуйте, у меня есть rest controller который работает с данными получая и выдавая их в формате json:
@GetMapping(value = "/employee/{empNo}",
                produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public Employee getEmployee(@PathVariable("empNo") String empNo){
        return employeeDAO.getEmployee(empNo);
    }

    @PostMapping(value = "/employee",
            produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public Employee addEmployee(@RequestBody Employee emp) {
        logger.info("(Service Side) Creating employee: " + emp.getEmpNo());
        return employeeDAO.addEmployee(emp);
    }

и другие методы.
Но что если теперь я хочу скажем добавить html страницы с пользовательским вводом и так же выводить пользователям данные, скажем, в виде таблицы, а не в формате json.
<form th:action="@{/register}"
      th:object="${personForm}" method="POST">

Для этого мне вероятно надо решить следующие вопросы:
1) каким образом организовать html страницу, чтобы при submit из полей введенных пользователем формировался json, чтобы при желании я мог через postman сразу передать туда json и создать новый объект
2) каким образом возвращать объект, чтобы при пользовательском запросе, пользователь получил вывод таблицей, а при запросе стороннего сервиса, этот сервис получил json.
Возможно я не совсем понимаю принцип работы, так что буду очень благодарен за сопутствующие объяснения.
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@AstraVlad
Финансист, консультант, программист-любитель
Это называется: "Написать фронтэнд к имеющемуся бэкенду".

Делаем html-форму, берем ЖабаСкрипт, пишем обработчик события отправки формы, в нем вместо дефолтного поведения отправляем html-запрос на ваш сервер, где крутится бэк, в ответе получаем данные, генерируем из них таблицу, добавляем ее на страничку. И вуаля: вы фуллстэк разработчик! :).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы