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 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`,并定义 `HypermediaMappingInformation` 或 `HalConfiguration` 来配置 Spring HATEOAS 以满足您的应用程序及其客户端的需求。