我有一个非常松散的对联系统,可以获取任何json有效负载并保存在mongo集合中。
没有实体可以作为资源公开,但只有控制器端点公开 例如
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> publish(@RequestBody Map<String, Object> jsonBody) {
.. save the body in mongo
....}
我仍然希望构建一个超媒体驱动的应用程序。带有导航和分页的链接。
其控制器实现ResourceProcessor
public class PublicationController implements ResourceProcessor<RepositoryLinksResource> {
....
@Override
public RepositoryLinksResource process(RepositoryLinksResource resource) {
resource.add(linkTo(methodOn(PublicationController.class).getPublications()).withRel("publications"));
return resource;
}
问题是处理器永远不会被调用? 将@EnableWebMvc放在配置类上可以解决它(处理器被调用),但首先这不应该是必需的,并且辅助HAL链接的格式似乎已经破坏
例如。将formattet作为列表
links: [
{
"links":[
{
"rel":"self",
"href":"http://localhost:8080/api/publications/121212"
},
{
"rel":"findByStartTimeBetween",
"href":"http://localhost:8080/api/publications/search/findStartTimeBetween?timeStart=2015-04-10T13:44:56.437&timeEnd=2015-04-10T13:44:56.439"
}
]
}
是否有@enableWebMvc的替代品,以便处理器被调用?
目前我正在运行Spring boot v.1.2.3
答案 0 :(得分:0)
事实证明答案很简单。 问题是我有静态内容(resources / static / index.html) 这将抑制来自根的超媒体链接。 移动静态内容使一切都运行得很好。