从另一个项目调用 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

如何使用标题中的两个参数和正文中的第二个参数从另一个 MVC 项目调用 Web API

Spring MVC - 从另一个休息服务内部调用休息服务

从 ASP.net 4 Web API 2 项目通过 HttpClient 调用 REST 服务导致异常