从另一个项目调用 REST API
Posted
技术标签:
【中文标题】从另一个项目调用 REST API【英文标题】:Call REST API from another project 【发布时间】:2019-04-20 21:49:46 【问题描述】:我有两个项目,一个用于用户,另一个用于部门。
现在我想从另一个 REST API 调用一个 REST API。怎么打电话?
我遇到了问题,因为与用户相关的课程不适用于部门,反之亦然。
这是我的 UserController 类。
@RestController
@RequestMapping("/user")
public class UserController
@Autowired
UserService userService;
@GetMapping(value="/get", headers="Accept=application/json")
public List<User> getAllUser()
List<User> tasks=userService.getUser();
return tasks;
这是我的 DepartmentController 类。
@RestController
@RequestMapping("/dept")
@Configurable
public class DeptController
@Autowired
DeptServiceImpl deptService;
@GetMapping(value="/get", headers="Accept=application/json")
public List<User> getDept()
List<Department> tasks=deptService.getDept();
return tasks;
请告诉我如何在 getDept() 中调用 getUser() 方法,以及如何使类彼此可用。
【问题讨论】:
如果您正在构建微服务,您不会调用 Java 中的方法,而是像任何其他客户端一样使用 HTTP 请求调用它们。共享类还会引入可能不可取的耦合。 通过例子告诉你什么?如何从 Spring 应用程序发出 HTTP 请求?通过搜索引擎进行研究似乎相对容易。 基本上,如果用户应用程序在 localhost 8080 上运行,那么您必须从您的部门应用程序调用 localhost:8080/user。RestTemplate
class 你要找的
【参考方案1】:
您需要将您的微服务资源公开为 REST API,以便您可以从外部调用它们,然后您可以使用 Spring 中的 RestTemplate 来检索您的信息
编辑
这里有一个很好的example,你可以依靠它来实现你想要的
【讨论】:
以上是关于从另一个项目调用 REST API的主要内容,如果未能解决你的问题,请参考以下文章
如何从另一个Rest Controller调用Rest控制器
使用 Spring Boot 从另一个服务调用 Rest Service 以进行课程注册系统
如何从另一个新的 Spring Boot 项目调用一个 Spring Boot 项目中存在的 Spring Boot api