Привет, ребята. Изучение Scala с помощью Spring. Много искал и не нашел ничего, что действительно помогло. Раньше я разрабатывал Node.js и сейчас немного запутался.
Я не понимаю, как мне отправлять JSON в ответ. Я хочу что-то подобное (по крайней мере, я бы сделал то же самое на js):
@RestController
@RequestMapping(path = Array("/api"))
class Auth {
@GetMapping(path = Array("/users"))
def getString(@RequestParam(value = "id") id: String): User = {
val user: User = Users.searchUser(id)
user
}
}
Итак, проблема в том, что я не могу отправить JSON. Насколько я понимаю, мне нужно сериализовать его, потому что Scala не может этого сделать сама. Я нашел следующий следующий тип ответа: MediaType.APPLICATION_JSON_VALUE, например
@PostMapping(path = Array("/users"), produces = Array(MediaType.APPLICATION_JSON_VALUE))
А для тестирования я переопределил функцию класса toString, которая содержит информацию о пользователях, поэтому она строит строку, похожую на json. Это работает, но это не решение, это ужасно. Также у меня возникает ошибка, если я пытаюсь использовать MediaType.APPLICATION_JSON (Несоответствие типа: ожидаемый% any_scala_type%, фактический: MediaType).
Как мне создать JSON / сериализовать объекты в JSON, чтобы отправить их клиенту?
Пожалуйста, проверьте ответьте здесь о том, как кодировать классы случаев scala как JSON, это то, что вы ищете. Также Скала, @ResponseBody

Вы, вероятно, забыли добавить Jackson или Gson к своим зависимостям. Вот что сериализует объекты в JSON. Не Scala. Что вы получаете при запросе
/users?id=someUserId?