1. Api是什么?
API(Application Programming Interface,應用程序編程接口)是一些預先定義的接口,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。
操作系統想了一個很好的辦法,它預先把這些復雜的操作寫在一個函數里面,編譯成一個組件(一般是動態鏈接庫),隨操作系統一起發布,並配上說明文檔,程序員只需要簡單地調用這些函數就可以完成復雜的工作,讓編程變得簡單有趣。這些封裝好的函數,就叫做API(Application Programming Interface),即應用程序編程接口。
說的更加通俗一點,別人寫好的代碼,或者編譯好的程序,提供給你使用, 就叫做API。你使用了別人代碼(或者程序)中的某個函數、類、對象,就叫做使用了某個API。
2. WebApi是什么?
Web: 網頁。
Api: 接口,應用程序編程接口,開發人員封裝的屬性和方法。
WebAPI: 提供給不同客戶端(跨平台客戶端)調用網頁的應用程序編程接口。
Web API,一般指基於HTTP協議的編程接口,接口一般定義為HTTP或HTTPS:請求方法、請求路徑、參數、響應數據格式、響應HTTP Code等。至於HTTP Server,可以用Java、.Net、Nodejs等各種框架實現,Http Server屬於Web API的實現,有時候也會指Web Service接口(目前越來越少見)。
3. 為什么要用WebAPI?
Web API最重要的是可以構建面向各種客戶端的服務。另外與WCF REST Service不同在於,Web API利用Http協議的各個方面來表達服務,例如:URI/Request/Response Header/Caching/Versioning/Content Format,因此就省掉很多配置。
4. WebAPI功能簡介
支持基於Http Verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作
通過不同的http動作表達不同的含義,這樣就不需要暴露多個API來支持這些基本操作。
請求的回復通過Http Status Code表達不同含義,並且客戶端可以通過Accept Header來與服務器協商格式,例如你希望服務器返回JSON格式還是XML格式。
請求的回復格式支持 JSON,XML,並且可以擴展添加其他格式。WebApi服務器支持Self-Hosting、IIS Hosting以及Windows Service Hosting三種承載(宿主)方式。
支持大多數MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。
5. WebAPI接口搭建三種承載(Hosting)方式
一、C# ASP.NET WebApi服務器搭建詳解 - IIS服務承載(IIS Hosting IIS宿主)
二、C# ASP.NET WebApi服務器搭建詳解 - 自承載(Self Hosting)
三、C# ASP.NET WebApi服務器搭建詳解 - Win服務承載(Windows Service Hosting宿主)
6. WebAPI服務器部署,Self Hosting + IIS服務 + Win服務
6.1 部署Self Hosting WebApi服務
將CSFramework.WebAPI.Demo.SelfHosting項目設為啟動項目,直接運行即可。
CSFramework.WebAPI.Demo.SelfHosting項目是個可以直接運行的控制台應用程序。
6.2 部署IIS承載的WebApi服務
在CSFramework.WebAPI.Demo.IISHosting項目點右鍵【發布】,彈出發布Web對話框,Publish method 選擇【File System】文件系統。
發布文件到一個目錄,將目錄文件部署到IIS服務器,參考下文。
參考:VS發布及IIS服務器部署WebApi后台開發框架(原)
6.3 部署Windows服務承載的WebApi服務器
在debug目錄下建立一個用於安裝win服務的批處理命令程序,如:_安裝服務.bat,以管理員身份運行即可安裝。
_安裝服務.bat
dos command:
path c:\windows\system32;
path %SystemRoot%\Microsoft.NET\Framework\v4.0.30319;
echo "開始卸載服務***************************"
installutil.exe /u %~d0%~p0CSFramework.WebAPI.Demo.WinServiceHosting.exe
echo "開始安裝服務**************************"
installutil.exe %~d0%~p0CSFramework.WebAPI.Demo.WinServiceHosting.exe
echo "設置服務自動啟動*********************"
sc config CSFramework.WebAPI.Demo.WinServiceHosting start= auto
Net Start CSFramework.WebAPI.Demo.WinServiceHosting
pause;
安裝完成,打開Windows服務管理器,查看服務狀態。
參考:C# ASP.NET WebApi服務器搭建詳解 - Win服務承載(Windows Service Hosting宿主)
.NET WebApi開發框架|MVC框架|后端框架|服務端框架-標准版V1.0

適用開發:快速構建支持多種客戶端的服務端程序,支持APP、B/S、C/S跨平台移動終端等。

運行平台:Windows + .NET Framework 4.5

開發工具:Visual Studio 2015+,C#語言

數據庫:Microsoft SQLServer 2008R2+(支持多數據庫:Oracle/MySql)
7. CSFramework.WebAPI服務端開發框架專業版V1.0 《體系架構圖
》
CSFramework.WebApi 封裝多個通用功能,為搭建Web服務端軟件提供強大的技術支持。

客戶端請求以命令形式傳遞到服務端的API接口,命令也就是請求的數據包,包含有請求編號、數據簽名以及提交的業務數據。服務端接收到請求,首先要進行數據格式分析以及安全檢查,比如數據簽名、用戶令牌或用戶賬號信息等。檢查通過后,系統自動將請求傳遞到命令處理處理程序,系統將拒絕非法請求,拋出異常或返回錯誤回應信息給客戶端。

命令處理層即業務邏輯層,主要負責數據校驗和提取業務數據,將
Request的數據(JSON或XML)文本內容轉換為實體對象,最后傳遞到數據訪問層提交到數據庫。
數據訪問層是整個邏輯處理的最后一個流程,負責將數據模型持久化到數據庫。數據層使用開發框架內置的數據更新機制,根據表結構模型自動生成SQL腳本,無論是提交單條或批量數據,無需手工編寫SQL腳本,系統自動實現數據的持久化。框架支持其他數據模型,如Entity Framework等。
8. CSFramework.WebAPI服務端開發框架成功案例