2017-05-26 38 views
0

我有一個RestController用戶,並有另一個公司。如何從同一個應用程序在春季啓動時調用另一個API

CompanyController:使用服務和回購級別獲取公司信息並存儲到公司表中。

UsersController:它獲取並存儲用戶。

關係:每個用戶都與公司(User hasOne company)相關聯。

問題是當新用戶註冊時,我們需要通過id獲取公司信息並與用戶配置文件關聯。

爲此,我在CompanyController(getCompanyInfo)中有一個api。我要調用的API,同時節省用戶配置文件

問題來獲取公司:如何調用來自同一應用程序的另一個API在春季啓動

+1

爲什麼不是你叫公司服務直接(如果兩個控制器存在於同一應用程序中)?它將比呼叫公司控制器更快。 – Afridi

+0

因爲我在公司控制器上做了一些計算。我不想丟失或重寫 – Sachin

+0

控制器的主要目的是通常驗證請求參數,然後使用相應的服務進行任何類型的計算或業務邏輯驗證。但是,如果你想調用控制器,那麼你可以使用Resttemplate – Afridi

回答

1

爲什麼不能是你直接致電公司服務(如果兩個控制器在同一應用程序中存在)?它將比呼叫公司控制器更快。

你的控制器會比這個樣子:

@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 
    } 
} 
相關問題