Spring HATEOAS

如果你开发的 RESTful API 采用了超媒体,Spring Boot 提供的 Spring HATEOAS 自动配置可满足大多数应用需求。 自动配置无需再使用 @EnableHypermediaSupport,并会注册一系列 bean,便于构建基于超媒体的应用,包括 LinkDiscoverers(客户端支持)和配置为正确序列化响应的 ObjectMapperObjectMapper 可通过设置各种 spring.jackson.* 属性或(如存在)通过 Jackson2ObjectMapperBuilder bean 进行自定义。

你可以通过 @EnableHypermediaSupport 完全控制 Spring HATEOAS 的配置。 注意,这样会禁用前述的 ObjectMapper 自定义。

spring-boot-starter-hateoas 仅适用于 Spring MVC,不应与 Spring WebFlux 混用。 如需在 Spring WebFlux 中使用 Spring HATEOAS,可直接依赖 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,以满足应用及客户端需求。