我有一个用户的RestController,还有另一个用于公司。
CompanyController:使用服务和回购级别将公司信息提取并存储到公司表。
UsersController:它获取并存储用户。
关系:每个用户都与公司(User hasOne company)相关联。
问题是新用户何时注册,我们需要通过ID获取公司信息并与用户个人资料相关联。
为此,我在CompanyController(getCompanyInfo)中有一个api。我必须在保存用户个人资料时将该api称为取消公司
问题:如何在春季启动时从同一个应用程序调用另一个api
答案 0 :(得分:2)
为什么不直接呼叫公司服务(如果两个控制器都存在于同一个应用程序中)?它会比呼叫公司控制器更快。
您的控制器将如下所示:
@RestController
public class UsersController {
@Autowired
private CompanyService companySerivce;
@RequestMapping("/register")
public ResponseEntity<User> registerUser(){
//Do whatever you want
CompanyInfo companyInfo = companyService.getCompanyInfo();
//Do whatever you want
}
}
如果您仍想直接致电公司控制人员,那么您可以这样做:
@RestController
public class UsersController {
@Autowired
private RestTemplate template;
@RequestMapping("/register")
public ResponseEntity<User> registerUser(){
ResponseEntity<CompanyInfo> companyInfoResponse = template.getForObject("Url for getCompanyInfo() method", CompanyInfo.class);
CompanyInfo companyInfo = companyInfoResponse.getBody();
//Do whatever you want
}
}