Spring hateoas 将 _links 呈现为 link
Spring hateoas renders _links as link
所以,首先,如果这在细节上有点不清晰,我深表歉意,但我已经为这个问题烦恼了一整天,而且无法在这个项目之外重现这个问题没有运气,真的希望社区至少可以提供一个指向从哪里开始调试过程的指针。
基本上,我正在将一个项目从非常旧的 (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 模块的代码流,它确实被触发了,但很难弄清楚魔术应该发生在哪里。所以我想,我最基本的问题是,如果有一个明显的地方可以放置断点,测试为什么结果没有按预期呈现?当然,如果有什么愚蠢的东西,我错过了或者我可以提供的更多相关细节。基本上,欢迎此时的任何帮助
我是个白痴。原来我在 jacksonobjectmapper 构建器中启用了 findModulesViaServiceLoader(true),由于某种原因导致它失败。
所以,首先,如果这在细节上有点不清晰,我深表歉意,但我已经为这个问题烦恼了一整天,而且无法在这个项目之外重现这个问题没有运气,真的希望社区至少可以提供一个指向从哪里开始调试过程的指针。
基本上,我正在将一个项目从非常旧的 (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 模块的代码流,它确实被触发了,但很难弄清楚魔术应该发生在哪里。所以我想,我最基本的问题是,如果有一个明显的地方可以放置断点,测试为什么结果没有按预期呈现?当然,如果有什么愚蠢的东西,我错过了或者我可以提供的更多相关细节。基本上,欢迎此时的任何帮助
我是个白痴。原来我在 jacksonobjectmapper 构建器中启用了 findModulesViaServiceLoader(true),由于某种原因导致它失败。