Spring HATEOAS

如果您開發的 RESTful API 使用了超媒體,Spring Boot 提供了 Spring HATEOAS 的自動組態,這與大多數應用程式都能良好搭配運作。自動組態取代了使用 @EnableHypermediaSupport 的需求,並註冊了許多 bean,以簡化基於超媒體的應用程式的建置,包括 LinkDiscoverers(用於客戶端支援)和 ObjectMapper,其組態設定為正確地將回應封送成所需的表示形式。ObjectMapper 可透過設定各種 spring.jackson.* 屬性或使用 Jackson2ObjectMapperBuilder bean(如果存在)進行自訂。

您可以使用 @EnableHypermediaSupport 來控制 Spring HATEOAS 的組態。請注意,這樣做會停用稍早描述的 ObjectMapper 自訂。

spring-boot-starter-hateoas 專用於 Spring MVC,不應與 Spring WebFlux 結合使用。為了將 Spring HATEOAS 與 Spring WebFlux 搭配使用,您可以新增對 org.springframework.hateoas:spring-hateoas 的直接依賴,以及 spring-boot-starter-webflux

預設情況下,接受 application/json 的請求將收到 application/hal+json 回應。若要停用此行為,請將 spring.hateoas.use-hal-as-default-json-media-type 設定為 false,並定義 HypermediaMappingInformationHalConfiguration,以組態 Spring HATEOAS 來滿足您的應用程式及其客戶端的需求。