ResponseEntity

ResponseEntity 類似於 @ResponseBody,但增加了狀態和頭部資訊。例如:

  • Java

  • Kotlin

@GetMapping("/something")
public ResponseEntity<String> handle() {
	String body = ... ;
	String etag = ... ;
	return ResponseEntity.ok().eTag(etag).body(body);
}
@GetMapping("/something")
fun handle(): ResponseEntity<String> {
	val body: String = ...
	val etag: String = ...
	return ResponseEntity.ok().eTag(etag).build(body)
}

WebFlux 支援使用單值 響應式型別 非同步生成 ResponseEntity,以及/或者使用單值和多值響應式型別作為主體。這使得 ResponseEntity 可以有多種非同步響應,如下所示:

  • ResponseEntity<Mono<T>>ResponseEntity<Flux<T>> 使響應狀態和頭部資訊立即可知,而主體則在稍後非同步提供。如果主體包含 0 到 1 個值,使用 Mono;如果可以產生多個值,則使用 Flux

  • Mono<ResponseEntity<T>> 在稍後非同步提供所有三項——響應狀態、頭部資訊和主體。這使得響應狀態和頭部資訊可以根據非同步請求處理的結果而變化。

  • Mono<ResponseEntity<Mono<T>>>Mono<ResponseEntity<Flux<T>>> 是另一種可能(儘管不那麼常見)的替代方案。它們首先非同步提供響應狀態和頭部資訊,然後非同步提供響應主體。

© . This site is unofficial and not affiliated with VMware.