我尝试实现一个React式端点来保存新的实体示例:
方法保存在SubjectRepository
中仍然需要Subject
而没有Mono
Package 器。但是如何从React式 Package 器中提取值并不清楚。
我应该用request.body(BodyExtractor)
从Mono<Subject>
中提取Subject
并调用SubjectRepository.save(Subject s)
吗?或者我可以直接将Mono<>
保存到MongoDB中?
这是处理输入正文的正确方法吗?
实体:
@Document
public record Subject(@Id UUID id, String route) {}
@Repository
public interface SubjectRepository extends ReactiveMongoRepository<Subject, UUID> {
}
处理程序方法:
@NotNull
public Mono<ServerResponse> createSubject(@NotNull ServerRequest request) {
Mono<Subject> data = subjectRepository
.save(/** Somehow extract Subject from request */);
return ServerResponse
.ok()
.contentType(MediaType.APPLICATION_JSON)
.body(data, Subject.class);
}
1条答案
按热度按时间fykwrbwg1#
您需要使用React式操作符来构造流,当web flux订阅此流时将执行这些操作符。在这种情况下,使用
request.bodyToMono
来解析请求主体,然后继续序列以构造ServerResponse