首页 > 解决方案 > 不确定在我的 Spring MVC 应用程序中在哪里进行外部 API 调用

问题描述

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

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

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

如果有帮助,这里是 GitHub 上存储库的链接。

谢谢!

标签: javaspring-bootspring-mvcyelp-fusion-api

解决方案


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

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

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

  1. Spring docs:这具有遵循的基本包结构。
  2. 这个中型博客也很适合理解项目结构和最佳实践的其他方面。

推荐阅读