【问题标题】:How to call another API in monolithic application?如何在单体应用程序中调用另一个 API?
【发布时间】:2022-11-12 14:47:11
【问题描述】:

我正在开发一个 Spring Boot 项目,我必须通过 API 向另一个项目发送响应。因此,我的应用程序有一个 API,我在其中处理数据,然后必须通过不同的 API 向另一个项目发送 API 响应。那么是否有可能在一个单一的应用程序中做,或者我必须为此创建一个微服务?

我正在尝试在同一个应用程序中做,但我无法找出解决方案,我们如何才能实现这个整体应用程序?

【问题讨论】:

  • 我假设这两个项目是两个不同的应用程序。让我知道这个假设是否不正确。另外,这个问题有点不清楚——你在项目 A 中有一个处理数据的 API,一旦完成,你想在项目 B 中调用一个 API。这对吗?
  • 嗨@avin,让我解释一下场景,Rn 我有单体应用程序,所以如果我们以任何在线购物网站为例,用户想要付款,现在在线购物创建了一个时间框架,如果在 3 中没有收到金额几天,他们将触发一个 api,该 API 向用户发送一条消息,如果您的支付成功,则应用程序将向用户发送一条消息,说明您的支付成功。所以我必须制作那个触发器 API
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如它目前所写的那样,很难准确地说出你在问什么。
  • @Funtush 请在原始问题中添加您向 avin 解释的详细信息。

标签: java spring-boot microservices monolithic


【解决方案1】:

由于您希望在付款后 3 天内触发,因此您可以使用调度程序。

如果您在 AWS 中运行您的应用程序,您可以使用 AWS Event Bridge 每天早上调用您的 API。 (其他云提供商也应该有替代方案)。您的 API 应该调用 yourMethod() 并为您运行逻辑。

如果您不想使用 AWS Event Bridge 之类的服务,并且只想使用 Spring Boot,那么 Spring Boot 有一个 cron 作业,您可以将其用作调度程序。

@Scheduled(cron = "0 15 9 ? * ?", zone = "Asia/Calcutta") //9.15 AM everyday in Indian Timezone. Format of time is sec-min-hour-dayOfMonth-Month-DayOfWeek. Don't use @Scheduled if you use AWS Event Bridge
@Async //add this to run the method in Background
public void yourMethod() {
    //your logic
}

并添加您的逻辑以检查当前日期 - 订购日期 = 3 天的所有订单。相应地发送通知。

在 Spring 中可能还有其他可能的方式。这不是唯一的解决方案

【讨论】:

    猜你喜欢
    • 2011-03-28
    • 1970-01-01
    • 2022-06-26
    • 2022-11-23
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多