如何强制@AutoConfigureJsonTesters使用spring-hateoas的HAL格式?

时间:2018-03-15 15:39:34

标签: spring-boot kotlin spring-hateoas spring-boot-test

我有一个小模块,应该只包含我的REST服务的资源模型。我想在此模块中创建一个测试,以确保资源模型序列化和反序列化适当的HAL格式。

我有一个测试,这是配置:

@RunWith(SpringRunner::class
@SpringBootTest
@AutoConfigureJsonTesters
class MyTest {

    @Autowired
    private lateinit var collectionTester: JacksonTester<Resources<Entity>>

 ....
}

和一个非常简单的配置

@SpringBootConfiguration
class TestConfig

在Entity列表(扩展ResourceSupport)上调用collectionTester.write时,我没有得到_embedded字段,而是得到

{"links":[],"content":[...]}

不是HAL格式。

如何强制@AutoConfigureJsonTesters为我提供一个配置为HAL的ObjectMapper的JacksonTester?

Spring Boot 2.0.0.RELEASE

谢谢!

1 个答案:

答案 0 :(得分:0)

自动配置的 JacksonTester 将使用上下文的 ObjectMapper,它不会在其上配置任何 Spring HATEOAS 内容。您最好自己创建一个 JacksonTester 并将其传递给适当配置的 ObjectMapper 以供使用。

我相信 Spring HATEOAS 有一个模块可以应用于 ObjectMapper 来配置它。如果您对此感到困惑,那么在 gitter/spring-projects/spring-data 中询问可能是您最好的选择,因为 Spring HATEOAS 由数据团队维护,因为它被 Spring Data REST 使用。