2013-12-08 75 views

回答

0

我想你有你的前端MVC和你的Web API在同一個項目中,可能共享相同的模型對象,這是正確的嗎?

如果這是正確的,你想解耦他們,這就是我已經接近它。

首先,創建3個獨立的項目。其中一個將包含您的前端,第二個,您的Web API以及可能的數據訪問邏輯(如果需要,這甚至可能是另一個僅由Web API調用的數據訪問層項目),最後是一個通用對象定義庫。

公共對象庫除了定義可繼承的對象和接口之外,不會包含任何代碼。該項目將作爲對Web API和前端MVC項目的參考添加,並且應該很容易在您的移動開發語言中進行復制。這將您的所有應用程序以對象方式放在同一頁面上,這使您的開發任務變得更加容易。

其次,我創建了一個ApiGateway類,MVC前端用來調用Web API。該類使用反射將來自API調用的結果從我的定義庫加載到對象中。此時您也可以引入一些常見的服務器端緩存和錯誤處理。

讓我知道你是否需要進一步澄清這項技術。

1

您可以通過http使用HttpClient類從您的MVC應用程序中使用Web API方法。像這樣:

 using (var client = new HttpClient()) 
     { 
      client.BaseAddress = new Uri("http://localhost/"); 

      string actionString = string.Format("api/GetSomething/{0}?count={1}", "someId", 5); 
      HttpResponseMessage response = client.GetAsync(actionString).Result; 

      if (response.IsSuccessStatusCode) 
      { 
       // do something 
      } 

     }