不确定在我的 Spring MVC 应用程序中在哪里进行外部 API 调用

Not sure where to make external API calls in my Spring MVC application

首先是免责声明——我对编程还很陌生。这个项目或多或少是一个顶点,我们正在 Spring 引导框架(Java 语言,Thymeleaf 视图)中工作。

我的程序的总体要点是这样的:用户填写表单,这些参数用于调用 Yelp Fusion API。

我花了很多时间弄清楚 如何 进行 API 调用,而忽略了 在哪里 [=25] =] 去做。它目前在我的控制器 class 中,但现在我不太确定这是否是最好的主意——也许它应该放在模型甚至 DTO 中?我很感激任何见解,因为一般的互联网似乎是矛盾的。

Here's the link to the repository on GitHub 如果有帮助的话。

谢谢!

最好在服务层为API进行任何客户端调用或编写业务逻辑。

在您的情况下,您可以创建一个服务包并创建一些在您的控制器中自动装配的接口 YelpClientCallService.java,以及实现 YelpClientCallService.java 界面。现在,您可以从这个 class 调用客户端 API,然后对收到的响应执行业务逻辑,或者您可以只 return 对控制器的响应。

您还可以将服务 class 注释为 @Service 而不是 @Component。 它只是 @Component 的一个特殊名称,将有助于 class 化。 有关 Springboot 中包结构的更多详细信息,您可以查看以下资源。

  1. Spring docs :这具有遵循的基本包结构。
  2. 这种媒介 blog 也很适合理解项目结构和最佳实践的其他方面。