java - 不确定在我的 Spring MVC 应用程序中在哪里进行外部 API 调用
问题描述
首先是免责声明——我对编程很陌生。这个项目或多或少是一个顶点,我们正在使用 Spring Boot 框架(Java 语言,Thymeleaf 视图)。
我的程序的总体要点是:用户填写表格,这些参数用于调用 Yelp Fusion API。
我花了很多时间弄清楚如何进行 API 调用,而忽略了考虑在哪里进行。它目前在我的 Controller 类中,但现在我不确定这是否是最好的主意——也许它应该放在模型甚至 DTO 中?我会很感激任何见解,因为一般的互联网似乎是矛盾的。
如果有帮助,这里是 GitHub 上存储库的链接。
谢谢!
解决方案
最好在服务层中为 API 进行任何客户端调用或编写业务逻辑。
在您的情况下,您可以创建一个服务包并创建一些YelpClientCallService.java
在控制器中自动装配的接口,以及一个YelpClientCallServiceImpl.java
实现该YelpClientCallService.java
接口的类。现在,您可以从此类调用客户端 API,然后对收到的响应执行业务逻辑,或者您可以将响应返回给控制器。
您还可以将服务类注释为@Service
而不是@Component
. 它只是一个特殊的名称,@Component
有助于分类。有关 Springboot 中包结构的更多详细信息,您可以查看以下资源。
推荐阅读
- python - Elasticsearch 如何搜索文档?ES中如何自定义预处理流水线和评分功能?
- botframework - 单击通知将我带到通用提要而不是聊天部分
- python - 如何从 Python 加速 protobuf 的反序列化
- javascript - 为什么不打印未定义?
- spring-boot - /actuator/health 未检测到 Spring Cloud Stream 中已停止的活页夹
- amazon-web-services - 修改 $connect、$disconnect 或 API 网关的任何自定义路由中的 websocket 状态码
- image - 转换旧的 Miniviewer 图像
- sql - 使用存储过程使用表的最大创建时间切换视图功能
- javascript - Chrome 扩展将参数添加到 url
- html - 如何使用 utext 悬停表格