Spring HATEOAS

如果开发利用超媒体的 RESTful API,则 Spring Boot 会为 Spring HATEOAS 提供自动配置,它适用于大多数应用程序。自动配置消除了使用 @EnableHypermediaSupport 的需要,并注册了许多 bean 以简化基于超媒体的应用程序的构建,包括一个 LinkDiscoverers (用于客户端支持)和一个配置为以所需表示正确编组响应的 ObjectMapper 。通过设置各种 spring.jackson.* 属性或(如果存在则)通过 Jackson2ObjectMapperBuilder bean 自定义 ObjectMapper

可以使用 @EnableHypermediaSupport 控制 Spring HATEOAS 的配置。请注意,这样做会禁用先前描述的 ObjectMapper 自定义。

spring-boot-starter-hateoas 适用于 Spring MVC,不应与 Spring WebFlux 结合使用。为了在 Spring WebFlux 中使用 Spring HATEOAS,可以添加对 org.springframework.hateoas:spring-hateoasspring-boot-starter-webflux 的直接依赖。

默认情况下,接受 application/json 的请求会收到 application/hal+json 响应。要禁用此行为,请将 configprop:spring.hateoas.use-hal-as-default-json-media-type[] 设置为 false ,并定义一个 HypermediaMappingInformationHalConfiguration 以配置 Spring HATEOAS 以满足您的应用程序及其客户端的需求。