Spring Hateoas将_links渲染为链接

时间:2018-09-03 17:57:45

标签: spring-boot spring-hateoas

因此,首先,如果对细节没什么了解,我深表歉意,但是我整整整整一天都在梳头,并且无法在该项目之外重现该问题。祝您好运,并真的希望社区能够为您提供至少一个指示从哪里开始调试过程的指导。

基本上,我将一个项目从非常旧的(1.28)版本的Spring Boot更新到当前的2.04,并且除了某些原因,一切似乎都可以正常工作,Spring-hateoas似乎无法正确呈现链接。 Iv建立了一个非常简单的控制器方法

@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模块的代码流,但确实触发了它,但是要弄清楚应该在何处发生魔术有点困难。所以我想,我的最基本问题是,是否有明显的位置放置断点,以测试为什么未按预期呈现结果?当然,如果有一些愚蠢的事情,我已经错过了,或者我可以提供的更多细节是有意义的。基本上,欢迎您提供任何帮助

1 个答案:

答案 0 :(得分:0)

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