C#版ASP.NET Web API使用示例


為更好更快速的上手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包為整合實體項目案例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM