Относительно вашего первого вопроса, я понятия не имею, потому что вы не опубликовали, как выглядит ваш запрос или как выглядит ваш Data
объект, так что это может быть что угодно. Трудно решить, когда у вас нет всей картины.
Но я собираюсь ответить на ваш второй вопрос:
Как правильно вернуть статус 201 Создан с телом, которое я хочу (Тип данных)?
Data saved = dataDAO.save(app);
Это выше, блокирующий вызов. Он будет вызывать вашу базу данных и ждать, пока не получит ваш Data
объект обратно.
Поскольку я понятия не имею, какую базу данных вы используете, но этот вызов должен быть заключен в Mono.fromCallable
, чтобы этот блокирующий вызов получал свой собственный поток из пула потоков elastic
согласно реактивной документации блокировка вызова
return Mono.fromCallable(() -> {
return dataDAO.save(app);
}).subscribeOn(Schedulers.elastic())
.flatMap(data -> {
return ServerResponse.ok().syncBody(data);
});
Я понятия не имею, что в вашем дао, поэтому я не буду писать никакой обработки ошибок, но я бы возвратил необязательный, а не null
из него, намного чище.