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

获取rest服务的对象传递列表

奚光霁
2023-03-14

我想把一个对象列表传递给一个Java rest服务。例如,循环列表。

class Cycle {
    private String id;
    private LocalDate date;   
}

@GetMapping("results")
public Result results(List<Cycle> cycles)

或者有一个包含列表的CyclesWrapper类。而不是传递列表cycleDates和列表CycleIds。

如何使用例如邮递员或curl将参数传递给rest服务?

因此,为了传入列表 says cycleIds,请求将是:http://localhost:8080/application/results?cycleIds=xx,yy

谢谢

共有1个答案

汤修贤
2023-03-14

按照当前的情况,您的端点将把cycles解释为查询参数,这意味着它将期望以下类型的请求:

GET /results?cycles=...

对于复杂对象列表,这不是标准方法。您可以将对象作为/results?cycle1id=abc&cycle1date=22-10&cycle2id=def&cycle2date=10-10&...传递,但这会非常麻烦,容易出错,并且需要在您的端进行自定义映射才能使其工作。此外,据我所知,没有发送查询数组参数的标准。

相反,你可以做的是:

  1. 将端点更改为POST端点,将循环(即过滤器)列表作为标准@requestbodyJSON传递。这将如下所示:
@PostMapping("results")
public Result results(@RequestBody List<Cycle> cycles)

现在您的请求应该是:

POST /results
{
    [
        {"abc", "22-10"},
        {"def", "10-10"}
    ]
}

由于post几乎可以做任何事情,因此它也可以在这个端点上返回一个过滤的响应。然而,这并不是一个很好的休息。

@GetMapping("results")
public Result results(@RequestParam List<String> ids, @RequestParam List<LocalDate> dates)

然后它将期望收到如下请求:

GET /results?ids=abc,def&dates=22-10,10-10

作为逗号分隔的列表。这更符合RESTful端点,尽管它也有点麻烦。

最后,似乎您的端点试图同时做两件事:在iddate上筛选。由于我不确定什么类型的逻辑工作代表一个循环,也许这些应该被拆分成两个不同的端点,例如:

GET /results/abc?dateFrom=22-10&dateUntil=23-10

其中/abc表示单数对象。在您的特定情况下,这表示的是结果还是循环,我不能说。你得自己评估一下。

 类似资料:
  • 我试图实现一个使用Spring Boot的客户机,它将从一个站点获取所有产品并将它们存储在数据库中。储存部分已经处理好了,但我很难找到所有产品的清单。当用Postman测试时,我可以用这样的身体得到响应:

  • 我听说亚马逊使用HTTP作为其基于微服务的架构。另一种方法是使用RabbitMQ或Solace Systems这样的消息传递系统。我个人对基于Solace的微服务架构有经验,但从未使用过REST。 知道像Amazon、Netflix、UK Gov等各种大联盟实现使用什么吗? 其他方面是,在微服务中,还需要以下东西(除了其他东西): *模式匹配 *异步消息传递。接收系统可能已关闭 *发布订阅 *缓存

  • 示例代码如下所示- 如何内嵌此“services”变量?

  • 问题内容: 我是Angular的新手(也是Java语言)。我已经编写了一个Angular服务,该服务返回一个用户数组。从HTTP调用检索数据,该HTTP调用以JSON格式返回数据。记录从HTTP调用返回的JSON数据时,可以看到此调用成功,并且返回了正确的数据。我有一个调用服务以获取用户的组件和一个显示用户的HTML页面。我无法从服务到组件获取数据。我怀疑我使用的Observable错误。也许我也

  • 我有一个组件,我在其中传递我想要在模态中显示的内容,如下所示: 模态服务如下所示: 在我的popupComponent我有: 现在一切都很好,但是我现在想做的是将一个函数传递给我的服务,以便它使用它。像这样的事情,但我不知道怎么做:

  • 问题内容: 我正在考虑我的应用程序的解决方案。这是一种情况:我有一个类,该类的方法将ObjectA作为输入参数并调用几个小方法,这些方法中的每个方法都需要ObjectA的某些部分(它们不重叠,即需求和,需求等等)。 …)现在的问题是:鉴于一般的良好代码实践和性能,将ObjectA传递给这些方法中的每一个方法更好,以便它们可以自己提取所需的值,还是仅传递它们的值更好?我的意思是: 要么 感谢您的任何

  • 我有上述方法,它从html表单中获取参数并将此数据添加到数据库表中。我想做同样的事情,但使用json Object,那么如何将Json Object作为参数传递呢?以及我应该添加什么依赖项到我的Pom.xml文件中。谢谢

  • 我正在使用Get请求调用部署在本地Apache Tomcat服务器上的war文件中的Rest服务,URL“HTTP://localhost:8080/usermanagement/Rest/userservice/users/1”返回一个用户,但URL“HTTP://localhost:8080/usermanagement/Rest/userservice/users/1”返回HTTP状态404