ken*_*nda 3 spring spring-data-rest spring-hateoas
我将所有api端点映射到基本URL下/api/.现在,我希望通过HATEOAS使用spring-data-rest来公开所有可用的端点,以便客户端应用程序可以处理这些信息.默认情况下,这似乎开箱即用,因为GET /api/返回所有找到的Spring存储库及其各自的URL如下:
{
"_links" : {
"news" : {
"href" : "http://localhost:8080/api/news{?page,size,sort,projection}",
"templated" : true
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我想添加一些自定义链接到其他资源.我试过这个:
@RequestMapping("/api")
public class AppController {
@RequestMapping("/")
public ResponseEntity<ResourceSupport> getEndpoints () {
ResourceSupport resource = new ResourceSupport();
resource.add(linkTo(UserController.class).withRel("users"));
return new ResponseEntity<>(resource, HttpStatus.OK);
}
}
Run Code Online (Sandbox Code Playgroud)
但这实际上会覆盖一切.所以我的问题是如何使用一些自定义链接扩展基本资源的spring-data-rest的标准输出?
我假设你正在使用spring-data-rest.
要添加指向服务索引资源的链接,您必须编写一个 ResourceProcessor<RepositoryLinksResource>
生成索引资源时将调用此处理器,您可以使用它来添加指向索引资源的链接.
这是一个例子:
/**
* Adds custom controller links to the index resource
*/
@Component
public class RepositoryLinksResourceProcessor implements ResourceProcessor<RepositoryLinksResource> {
@Override
public RepositoryLinksResource process(RepositoryLinksResource resource) {
resource.add(linkTo(UserController.class).withRel("users"));
return resource;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |