跳到主要内容

Spring HATEOAS

DeepSeek V3 中英对照 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 来配置 Spring HATEOAS,以满足你的应用程序及其客户端的需求。