2015-09-09 51 views
0

我的動機是寫一個通用保存方法在REST API。用戶將在請求正文發送實體使得取決於請求映射字符串應該是轉換爲實體我怎麼能在REST API控制器類型轉換請求體成所需的實體

爲什麼我想這一點,因爲在我的情況下,有多達50-60實體和按我的理解,我有寫了許多控制器。

我想實現這樣的事情。

@RequestMapping(value = "/{entity}", method = RequestMethod.POST) 
@ResponseBody 
public Object performSave(@PathVariable String entity 
     @RequestBody Object entity) { 

    switch(entity){ 

      case "employee" 
       return employeeService.save((Employee)entity); 

      case "Boss" 
       return bossService.save((Boss)entity); 

       default: 
       return null; 

      } 

但我不能這樣做,因爲Spring無法將JSON請求轉換爲java.lang.Object。

我有什麼可能的解決方案?

如果我的問題是沒有意義的你,請讓我知道,我會提供更多的細節。

在此先感謝。

+2

您在創建50個控制器時遇到了問題,但在包含50個不同服務的情況下沒有問題,並且在巨大的switch語句中調用了50種不同的服務方法?你可以看看Spring Data REST,然後你甚至不需要一個控制器。 – zeroflagL

回答

0

我不認爲這是可能的,潛在的映射器將需要該JSON解析到具體的類。該參數只是對實際對象的引用。

東西拿的注意的是使用REST和獲取來自它不僅具有簡單URL撥打的利益,當。必須將API設計爲RESTfull。我會建議你在沿着這條路走下去之前閱讀這個概念。

+0

好的感謝您的意見,似乎我沒有任何其他選擇。 – Roxy

相關問題