当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot数据Rest中公开自定义endpoint到基本路径

帅博远
2023-03-14

我正在使用Spring Boot Data Rest,我可以使用下面的URL列出所有endpoint:

http://localhost:8080/api

它列出了以下endpoint:

{
"_links": {
    "tacos": {
        "href": "http://localhost:8080/api/tacos{?page,size,sort}",
        "templated": true
    },
    "orders": {
        "href": "http://localhost:8080/api/orders"
    },
    "ingredients": {
        "href": "http://localhost:8080/api/ingredients"
    },
    "profile": {
        "href": "http://localhost:8080/api/profile"
    }
}

}

但我在控制器中创建了一个自定义endpoint,如下所示

@RepositoryRestController
public class RecentTacosController {

private TacoRepository tacoRepo;

public RecentTacosController(TacoRepository tacoRepo) {
    this.tacoRepo = tacoRepo;
}

@GetMapping(path = "/tacos/recent", produces = "application/hal+json")
public ResponseEntity<Resources<TacoResource>> recentTacos() {

    PageRequest page = PageRequest.of(0, 12, Sort.by("createdAt").descending());
    List<Taco> tacos = tacoRepo.findAll(page).getContent();
    List<TacoResource> tacoResources = new TacoResourceAssembler().toResources(tacos);
    Resources<TacoResource> recentResources = new Resources<TacoResource>(tacoResources);
    recentResources.add(ControllerLinkBuilder.linkTo(ControllerLinkBuilder.methodOn(RecentTacosController.class).recentTacos()).withRel("recents"));
    return new ResponseEntity<>(recentResources, HttpStatus.OK);
}

}

但是这个终点(http://localhost:8080/api/tacos/recent)执行“在基本路径上获取”时未列出。

共有1个答案

鲜于凯康
2023-03-14

实现ResourceProcessor

  @Override
  public RepositoryLinksResource process(RepositoryLinksResource resource) {
    resource.add( ... );
    return resource;
  }

... 并在那里创建并添加到自定义方法的适当链接。

 类似资料:
  • TL;DR:如何选择一个WP REST API自定义endpoint的响应的每一点信息? 长版 如果我想使用WP REST API构建自定义endpoint - 从不同的帖子类型发送特定帖子数据 - 按照手册中的示例,我得到了这个: 但是get_post()函数没有返回一些数据,如果您希望在页面中显示帖子,这些数据是非常有用的(例如类别id、特色图片)。那么,我如何构建一个自定义endpoint来

  • 我想在WordPress Rest API中添加自定义endpoint。我能够通过创建简单的插件来获取此代码的帖子ID,标题,内容,slug,类别和featured_image。我在代码中获得了类别ID。我想要类别名称,我试图通过来执行此操作,但没有理解它。如何通过自定义终结点获取类别名称,作者姓名和作者个人资料图像。我也是wordpress的初学者。我参考了文档,但不明白该怎么做。将其写w_po

  • 从spring-boot v1.3迁移到最新的spring-boot v2.2.4后,我们失去了在管理端口下拥有自定义endpoint的能力。 在我们将自定义endpoint声明为: 由于已从Spring引导执行器中删除了MvcEndpoint,现在我们需要执行以下操作: 不幸的是,我们失去了一个为自定义管理endpoint提供自定义根路径的选项(在它出现之前) 对于背部兼容性,我们仍然希望有默认

  • 在keycloak中实现自定义restendpoint时,我使用了以下示例:

  • 我正在尝试减少使用Rest API时返回的JSON。我可以在查询中使用“_embed”参数让它工作,但是它返回了大量我不需要的数据。因此,根据WP最佳实践,我想设置一个自定义endpoint,并在它的回调中调用一个函数来输出我需要的三个项目。看起来很简单,但是当我尝试的时候,它对所有的节点都返回NULL。在我的functions.php档案中,我有: 然后路由并回调自定义endpoint 当我使用