gpt4 book ai didi

spring - 扩展 Spring Data Rest 索引资源链接

转载 作者:行者123 更新时间:2023-12-02 06:45:15 25 4
gpt4 key购买 nike

我将所有 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
}
}
}

但是,我想添加一些指向其他资源的自定义链接。我试过这个:

@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);
}
}

但这实际上会覆盖所有内容。所以我的问题是如何使用一些自定义链接扩展基础资源的 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;
}
}

关于spring - 扩展 Spring Data Rest 索引资源链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42027302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com