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