為更好更快速的上手Webapi設計模式的接口開發,本文詳細解釋了在Web API接口的開發過程中,我們可能會碰到各種各樣的問題總結了這篇,希望對大家有所幫助。
1:在接口定義中確定MVC的get或者POST方式
由於我們整個Web API平台是基於MVC的基礎上進行的API開發,因此整個Web API的接口,在定義的時候,一般需要顯示來聲明接口是[HttpGet]或者[HttpPost],雖然有些接口也可以不用聲明,但是避免出現類似下面的錯誤信息,顯式聲明還是有好處的。
如下代碼片段依次展示
HttpGet:
=============================================================================
/// <summary>
/// 查詢數據庫,檢查是否存在指定ID的對象
/// </summary>
/// <param name="id">對象的ID值</param>
/// <returns>存在則返回指定的對象,否則返回Null</returns>[HttpGet]
public virtual T FindByID(string id, string token)
================================================
HttpPost:
/// <summary>
/// 插入指定對象到數據庫中
/// </summary>
/// <param name="info">指定的對象</param>
/// <returns>執行操作是否成功。</returns>[HttpPost]
public virtual CommonResult Insert(T info, string token, string signature, string timestamp, string nonce, string appid)
================================================
2:動態對象的接口定義
在一般的Web API接口里面,我們可能都會碰到很多簡單類型的參數,但是又想讓它們以POST方式提交數據,那么我們就可以有兩種方法來處理,一種是定義一個類來放置這些參數,一種是采用動態的JObject參數,前者有很多不方便的地方,因為我們不可能為每個接口參數定義多一個實體類,這樣可能會有很多難以管理的類定義。如下面是微信API的調用接口案例,我們也需要設置這樣的處理規則。
如下圖代碼片段示例:
//接口調用請求說明
//http請求方式: POST(請使用https協議)
https://api.weixin.qq.com/cgi-bin/groups/update?access_token=ACCESS_TOKEN
POST數據格式:jsonPOST數據例子:{"group":{"id":108,"name":"test2_modify2"}}
看完以上簡單的示例代碼描述解釋,應該對WebApi有一定初步了解,接下來我們就要通過簡單示例程序來了解下。
1:如下圖新建web項目
2:選擇webapi設計模板
3: 點擊確定后,VS會自動為我們創建一個完整的可運行的ASP.NET Web API的項目。
從項目的目錄結構可以看出,ASP.NET Web API與ASP.NET MVC項目的結構幾乎一致。我們刪除為我們默認創建並打開的ValuesController文件(示例性文件,可以參考)。
既然要打造一個IP地址查詢服務接口,為了跟上文的服務形式一致,我們還是使用GET請求方式的服務,不過我們這次使用MVC中的Web API來實現。
首先在Models文件夾中建立一個Address模型類。
4:注意(在這里我重要強調下,在了解webapi之前要對
MVC設計模式要有一定的基礎)
在這里我簡單介紹下生成的MVC 設計結構:如下解釋
MVC是模型(model)、視圖(view)、控制(controller)這三個單詞上的首字母組成。它是一種目前廣泛流行的應用模型,它的目的是實現Web系統的職能分工。(如下圖解釋模型分工層)
設計模式的優點:
MVC的處理過程是這樣的:對於每一個用戶輸入的請求,首先被控制器接收,控制器決定用哪個模型來進行處理,然后模型通過業務邏輯層處理用戶的請求並返回數據,最后控制器確定用哪個視圖模型,用相應的視圖格式化模型返回數據,並通過顯示頁面呈現給用戶。
通過MVC這種特殊的設計結構,大大提高了Web應用的開發效率。
Ok,我們繼續繼續開工,當生成好后我們架構,要打造一個IP地址查詢服務接口,為了跟上文的服務形式一致,我們還是使用GET請求方式的服務,不過我們這次使用MVC中的Web API來實現。
首先在Models文件夾中建立一個Address模型類(模型對象,屬性類)如下圖添加地址類
在模型類里面添加我們需要的屬性參數:如下代碼片段
public class Address
{
//以下三個屬於模型類屬性==【高峰2017-11-17】
/// <summary>
/// 城市IP段
/// </summary>
public string IPAddress { get; set; }
/// <summary>
/// 省份
/// </summary>
public string Province { get; set; }
/// <summary>
/// 城市
/// </summary>
public string City { get; set; }
}
接着我們在Controllers文件夾下建立一個IPAddressController控制器,需要注意的是,這個IPAddressController一定要繼承自ApiController類,這樣服務才能暴露出來。
如下圖展示注意:綠色注釋解析
Ok,只要做上面兩步就可以運行這個項目了,我們按Ctrl+F5運行整個項目,出現了如下的頁面,點擊API跳轉進入API接口列
我們所寫的地址接口:
最后界面展示出來我們需要的三個參數支持application/json, text/json
實例:如下
{
"IPAddress": "sample string 1",
"Province": "sample string 2",
"City": "sample string 3"
}
Ok當我們測試運行沒有問情況下需要驗證,我們實現的功能:驗證有兩種方式,一種是直接發布出來,掛載到IIS web服務器上,第二種是
通過第三方插件工具提送開發環境下的測試。此次我們兩種都介紹,如下第一種發布掛載到IIS上,ok,廢話不多,搞起!!!!
第一:如下圖選中項目,選擇發布
接下來選擇配置文件中的自定義文件,起一個霸氣的名字,然后我們下一步如圖所示
在Publish method路徑選擇file System,然后在以下中選擇自己定義好的物資位置如下圖:
我們繼續下一步,如下圖:
繼續點擊下一步:如下圖
點擊部發布后如下圖VS控制台提示:
當出現以上圖片顯示就說明我們發布成功了,接下來我們就可以發布到IIS上了如下圖一步步看圖。
1:發布准備文件
2:發布到IIS上
3:然后選中上圖紅色標識看效果如下圖開始測試
Ok,自動這里我們已經發布出來成功的掛在了IIS上,可提供給第三方使用,后面有需要具體流程業務,可以自己在添加流程。
第二:選擇第三方插件在開發環境下進行測試
WebApi接口測試工具:WebApiTestClient在便器工具更新下找到該工具
安裝WebApiTestClient即可。
Ok,到這里我們這部分webapi接口簡單實例就已經完成,下面我將蓋實例程序上傳到文檔供大家參考,修訂!!!!
webapi_test為簡單實例、HBTechPlatformHis包為整合實體項目案例
