Spring hateoas将_links呈现为链接

问题描述 投票:0回答:1

所以,首先,如果对细节有点了解,我会道歉,但是我已经把头发整理了一整天,并且没有能够在没有运气的情况下在这个项目之外重现这个问题,并且真的希望社区可以帮助至少指向启动调试过程的位置。

基本上,我正在将一个项目从一个非常古老的(1.28)版本的Spring启动更新到当前的2.04,除了某些原因外,一切似乎都有效,Spring-hateoas似乎没有正确地呈现链接。我设置了一个非常简单的控制器方法

@RestController
@RequestMapping("/hello")
public class HateoasTestController {

public static class Greeting extends ResourceSupport{
    private final String name;

    public Greeting(String name) {
        this.name = name;
           add(linkTo(ControllerLinkBuilder.methodOn(HateoasTestController.class).greet(name)).withSelfRel());
    }

    public String getName() {
        return name;
    }

}
@RequestMapping(value="/{name}" ,method=RequestMethod.GET)
public Greeting greet(@PathVariable("name")String name){
    return new Greeting(name);
  }
}

哪个呈现为

{"name":"peter","link":{"self":[{"href":"http://localhost:6789/hello"}]}}

在旧版本的服务中,它将呈现为

{"name":"peter","_links":{"self":[{"href":"http://localhost:6789/hello"}]}}

因此,看起来,由于某种原因,响应不会被序列化为HAL。我试图遵循Jackson2Hal模块的代码流程,它确实被触发了,但是很难弄清楚魔法应该发生在哪里。所以我想,我的基本问题是,如果有一个明显的地方可以设置一个断点,那么为什么结果不能按预期呈现呢?当然,如果有什么东西是愚蠢的,我错过了或者我能提供的任何更多细节都是相关的。基本上,欢迎任何帮助

spring-boot spring-hateoas
1个回答
0
投票

我是个白痴。事实证明我在jacksonobjectmapper构建器中启用了findModulesViaServiceLoader(true),由于某种原因导致它失败。

© www.soinside.com 2019 - 2024. All rights reserved.