使用ASP.NET Web Api構建基於REST風格的服務實戰系列教程

蔡俊鋒發表於2017-10-31

最近發現web api很火,園內也有各種大神已經在研究,本人在asp.net官網上看到一個系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tutorial-building-asp-net-web-api-restful-service/。於是打算跟著學一下,把學習過程記錄在部落格園的同時也分享給大家。

每一篇結束後我都會把程式碼共享

由於我也是剛開始入門技術能力有限,有問題大家一起討論下吧

系列導航

一.使用Entity Framework Code First構建資料庫模型(一)http://www.cnblogs.com/fzrain/p/3491804.html

二.使用Repository模式構建資料庫訪問層(二)http://www.cnblogs.com/fzrain/p/3503952.html

三.ASP.NET Web Api入門(三)http://www.cnblogs.com/fzrain/p/3510035.html

四.實現模型工廠,依賴注入以及配置格式(四)http://www.cnblogs.com/fzrain/p/3520442.html

五.在Web Api中實現HTTP的PUT,POST,GET和DELETE方法(五)

六.實現資源間的聯絡(六)

七.實現資源的分頁(七)

八.Web Api中的安全問題(八)

九.版本變化的前奏(九)

十.多種技術實現版本變化(十)

十一.使用ETag兌現資源(十一)

待續。。。。。。

基於REST風格服務的簡介

REST表示表述性狀態轉移,它代表的是執行在HTTP上的一個簡單的無狀態的架構,每一個唯一URL代表一個資源。在建立RESTful服務時,應遵循四個基本的設計原則:

      1.使用HTTP方法(動詞),使用統一的方式來獲取資源(互動的統一介面),即檢索資源使用GET,建立資源使用POST,  更新資源使用PUT / PATCH,刪除資源使用DELETE。

      2.與資源的互動是無狀態的, 因此由客戶端發起的每個請求應當包括HTTP請求的所有引數,上下文資訊和所需伺服器返回資料資料型別等。           

      3.資源標識應通過URI來定義,簡單來說應該是隻使用URI來完成伺服器與客戶端和資源之間的互動。這些URI可以看作一個RESTful服務提供的介面。

      4.支援JSON或/和XML等多種格式作為資料傳輸格式。

      關於RESTful服務的更多資訊,你可以參考:http://www.cnblogs.com/light169/archive/2007/12/31/1021814.html

ASP.NET Web Api簡介

ASP.NET WEb Api首次出現是在ASP.NET MVC4的時候,到目前為止已經有一年半的歷史了(對我來說還是新知識o(╯□╰)o)。它用於建立一個HTTP服務可以被各種客戶端(例如:瀏覽器,智慧手機終端,桌面客戶端等)來呼叫的框架。它並不是ASP.NET MVC框架的一部分,它作為ASP.NET平臺的一部分可以用於MVC,Web Form或者是作為一個獨立的服務存在。

aspnet-webapi

時至今日,隨著智慧手機的飛速發展和普及,單頁的應用程式猛增的趨勢。使用一個輕量級的Web Api來把你的服務暴露給客戶端就顯得極其重要。ASP.NET Web Api 將使用很多HTTP的特徵(URIs,請求/相應的處理模型,標題部分,版本控制以及各種傳輸資料的格式)帶你一起走進基於REST風格服務的精彩世界。

本次系列簡介

我們秉持簡單,易於理解的原則,同時覆蓋了ASP.NET Web Api很多不同的特性來構建我們的專案:

我們將建立一個培訓系統,這個系統對外提供一些簡單的API,該API允許學生報名參加不同的課程,讓老師檢視登記在每個課程的學生,在課程和學生之間實現CRUD以及更多的操作。在下一章我會把具體的用到資料庫模型展示給大家。

本次系列將會涉及一下的一些知識:

    1.採用不同的路由配置,控制器,資源間的關聯,格式的響應,和過濾器

    2.使用NInject實現依賴注入

    3.應用不同的格式響應分頁結果

    4.在多個資源實現複雜的CRUD操作

    5.使用SSL確保安全性

    6.使用不同的技術實現API的版本(URL的版本 :查詢字串,版本頭部,接受頭部)

    7.實現資源利用

備註:在本次系列中,我們不構建客戶端應用程式,我們將使用Fiddler or Postman 來傳送HTTP請求

相關文章