<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【WEB API項目實戰干貨系列】- API訪問客戶端(WebApiClient適用于MVC/WebForms/WinForm)(四)

      這幾天沒更新主要是因為沒有一款合適的后端框架來支持我們的Web API項目Demo, 所以耽誤了幾天, 目前最新的代碼已經通過Sqlite + NHibernate + Autofac滿足了我們基本的Demo需求.

      按照既定的要求,我們的API會提供給眾多的客戶端使用, 這些客戶端可以是各種Web站點, APP, 或者是WinForm, WPF, Silverlight等諸如此類的應用,將來還有可能是各種Iot等物聯網設備的應用,Restful API憑借其諸多優勢,已經在移動互聯網的時代火了一把,在接下來物聯網的時代會發展的更好。

      下圖是一個簡單的示意圖,我們本章的ApiClient將提供一套固定的模式,輔助客戶端來訪問我們前面幾章建立的API.

      image

       

      基本的HTTP傳輸

      我們在實際的項目中是定義了一個ApiClient的靜態類庫,其通過HttpClient 再配合 Microsoft.AspNet.WebApi.Client類庫,專門根據我們前面寫的API做了更進一步的封裝.

       

      APIClient

      我們先來看一下他提供的方法簽名

      image

       

      Get/Post

      顧名思義,這兩個用來完成常見的HttpGet/HttpPost, 只是Post的方法中多了一個Object 的postData參數,這個就是用來發送我們要Post到API端的數據.

       

      Execute

      是Get,Post使用的基礎方法, Get/Post的操作都是通過他完成的操作.

      參數說明:

      apiUrl: api的host地址

      methodName: api的方法路徑

      query: 查詢條件的組合, 通常對應URL中queryString部分, 也就是URL中問號后面的部分

      method: 要使用的httpMethod, 這里支持 Get,Post,Put,Delete四種,

      postData: post/put時,要傳到api端的數據, 通常已一個object, 發送之前會通過Json.Net序列化為json.

      useEndpointPrefix: 這個是指我們API的url 通常都有一個約定,就是在url的host部分后面加上api/作為開始,所以這是說url是否使用默認的這個習慣, 比如 http://xxx.com/api/xxxx

       

      UploadFiles/DownloadFile

      這兩個從名字也可以和容易的看出來,我們如何通過我們的api上傳跟下載文件,這個常用的場景有 通過app更新頭像,或者從api端導出某個文件.

       

      下面示例URL說明了我們上面參數中所對應的URL的部分

      image

      Query對象介紹

      上面除了Query對象之外,其他的都容易理解, 在沒有Query對象的時候,我們要拼出 URL的參數部分,我們通常會需要string來拼接,更好一點的辦法是定義一個Dictionary來做自動連接, 這里我們為了更方便,

      我們定義了一個Query對象,說到這里大家應該明白Query對象就是為了幫我們自動處理url的參數部分, 其核心基類是CoreQuery。

      這里我們看幾個內置的Query

      LoginQuery

      其提供了我們Login接口必要的參數, 在使用的時候我們可以直接new 一個loginQuery, 傳入api調用的方法.

      image

       

      SessionQuery

      這個是我們需要授權的APi需要傳入sessionKey參數,通常我們的BaseController里面會設計一個SessionQuery, 當發起 Api Request請求的時候,都會附上這個SessionQuery, 他會自動在API的url中附加sessionKey=xxx的參數

      public class SessionQuery : CoreQuery
          {
              [Query(Name = "sessionKey")]
              public string SessionKey { get; set; }
      
              public SessionQuery()
              {
      
              }
      
              public SessionQuery(SessionQuery query)
              {
                  this.SessionKey = query.SessionKey;
              }
          }

       

      ListQuery:

      可以從下面參數看到是用來處理分頁的請求的.

      image

       

      CoreQuery.ParmsObj屬性

      除了常規的參數需要通過自定義單獨的Query對象之外,對于一些很簡單的APi, 如果我們需要對每個API接口都創建一個Query那豈不是很麻煩?

      針對這個問題,我們想出了通過匿名對象來解決這個問題, CoreQuery下面有一個ParmsObj屬性, 在使用的時候可以通過

      image

      這種方式來動態的添加url參數,這樣會大大減少我們定義的Query類的數量.

       

      來張WebApiClient的類庫全圖

      image

      這個WebApiClient可以很好的在Mvc, Winform等.NET項目中使用, 幫助你的客戶端應用快速接入你開發的API.

       

      本章代碼: https://code.csdn.net/ODotNet/odn-webapiclient/tree/master

      同時已發布到 Nuget, 大家可以通過 Install-Package Odn.WebApiClient 來添加到項目中引用

      PM> Install-Package Odn.WebApiClient

       

      在今天移動互聯網的時代,作為攻城師的我們,誰不想著只寫一套API就可以讓我們的Web, Android APP, IOS APP, iPad APP, Hybired APP, H5 Web共用共同的邏輯呢? 【WEB API項目實戰干貨系列】教你一步步教你解決方案.

      posted @ 2015-10-24 18:22  DukeCheng  閱讀(11602)  評論(18)    收藏  舉報
      主站蜘蛛池模板: 国产一区二区三区不卡自拍| 精品视频在线观看免费观看| 亚洲第四色在线中文字幕| 亚洲国产激情一区二区三区| av无码精品一区二区乱子| 五月综合激情婷婷六月| 超碰人人模人人爽人人喊手机版| 国内精品久久久久影院网站 | 高清破外女出血AV毛片| 欧洲美熟女乱又伦免费视频| 99久久无码私人网站| 美女18禁一区二区三区视频| 亚洲成人av一区免费看| 人妻中出无码中字在线| 四虎影视永久在线精品 | 国产成人精品无码免费看| 一本一道av中文字幕无码| 亚洲an日韩专区在线| 丝袜欧美视频首页在线| 亚洲欧美人成电影在线观看| 亚洲av二区三区在线| 国产成人免费| 国产 麻豆 日韩 欧美 久久| 熟女蜜臀av麻豆一区二区| 又黄又爽又色的少妇毛片| 韩国精品一区二区三区在线观看| 午夜男女爽爽影院在线| 亚洲欧美中文日韩在线v日本| 亚洲精品中文字幕二区| 春菜花亚洲一区二区三区| 亂倫近親相姦中文字幕| 国产精品久久久久7777| 精品国产精品午夜福利| 欧美成人无码a区视频在线观看| 黑人巨大精品oideo| 国内在线视频一区二区三区| 中文字幕亚洲人妻一区| 国产高清自产拍av在线| 国产亚洲精品AA片在线播放天| 国产精品一亚洲av日韩| 欧美成人精品三级网站|