我有两个系统,一个是旧系统,另一个是新系统。每次更新旧版时,都需要实时更新新系统。有了这个,我认为webflux会对我有所帮助,所以我用mongo等创建了一个POC,
@RestController
public class ConversionTableProductTypeResource {
@Autowired
private ConversionTableProductTypeService service;
@GetMapping()
public Flux<ConversionTableProductType> getAll() {
return service.findAll();
}
@GetMapping(value = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ConversionTableProductType> getAllStream() {
return service.findAll();
}
@PostMapping()
public Mono<ConversionTableProductType> createTweets(@Valid @RequestBody ConversionTableProductType tweet) {
return service.save(tweet);
}
@DeleteMapping("/{id}")
public Mono<ResponseEntity<Void>> deleteTweet(@PathVariable(value = "id") String tweetId) {
return service.findById(tweetId)
.flatMap(existingTweet ->
service.delete(existingTweet)
.then(Mono.just(new ResponseEntity<Void>(HttpStatus.OK)))
)
.defaultIfEmpty(new ResponseEntity<>(HttpStatus.NOT_FOUND));
}
}
然后我认为这是解决我的问题的方法,因为我认为旧版可以更新mongo,而我的屏幕也可以神奇地自我更新。
可能是我的测试不正确,因为我通过浏览器或邮递员进行了/ stream调用。
如果我在想正确的方法,请问一下,如果这样,我做错了什么?