API 與web API
API定義
API(Application Programming Interface,應用程式程式設計介面)是一些預先定義的函式,目的是提供應用程式與開發人員基於某軟體或硬體得以訪問一組例程的能力,而又無需訪問原始碼,或理解內部工作機制的細節。
分類
Windows API
API函式包含在Windows系統目錄下的動態連線庫檔案中。Windows API是一套用來控制Windows的各個部件的外觀和行為的預先定義的Windows函式。使用者的每個動作都會引發一個或幾個函式的執行以告訴Windows發生了什麼。這在某種程度上很像Windows的天然程式碼。而其他的語言只是提供一種能自動而且更容易的訪問API的方法。當你點選窗體上的一個按鈕時,Windows會發送一個訊息給窗體,VB獲取這個呼叫並經過分析後生成一個特定事件。 更易理解來說:Windows系統除了協調應用程式的執行、記憶體的分配、系統資源的管理外,同時他也是一個很大的服務中心。呼叫這個服務中心的各種服務(每一種服務就是一個函式)可以幫助應用程式達到開啟視窗、描繪圖形和使用周邊裝置等目的,由於這些函式服務的物件是應用程式,所以稱之為Application Programming Interface,簡稱API 函式。WIN32 API也就是MicrosoftWindows 32位平臺的應用程式程式設計介面。 凡是在 Windows工作環境底下執行的應用程式,都可以呼叫Windows API。linux API
API 宣告
正如在"什麼是API"中所說,API函式包含在位於系統目錄下的DLL檔案中。你可以自己輸入API函式的宣告,但VB提供了一種更簡單的方法,即使用API Text Viewer。 要想在你的工程中宣告API函式,只需執行API Text Viewer,開啟Win32api.txt或MDB。如果你已經把它轉換成了資料庫的話,這樣可以加快速度。 使用預定義的常量和型別也是同樣的方法。 API除了有應用“應用程式介面”的意思外,還特指API的說明文件,也稱為幫助文件。程式功能
Web Api,網路應用程式介面。它包含了廣泛的功能,網路應用通過API介面,可以實現儲存服務、訊息服務、計算服務的能力,利用這些能力可以進行開發出強大功能的web應用。簡單來說,就是一個介面,比如說,我們要做前後端分離的專案,前端和後端通過url連線,但是我們如何知道後端的資料是否通了,返回的資料是否正確,於是我們通過這個介面知道。
為什麼使用web API
Web API最重要的是可以構建面向各種客戶端的服務。另外與WCF REST Service不同在於,Web API利用Http協議的各個方面來表達服務(例如 URI/request response header/caching/versioning/content format),因此就省掉很多配置。
當你遇到以下這些情況的時候,就可以考慮使用Web API了。
- 需要Web Service但是不需要SOAP
- 需要在已有的WCF服務基礎上建立non-soap-based http服務
- 只想釋出一些簡單的Http服務,不想使用相對複雜的WCF配置
- 釋出的服務可能會被頻寬受限的裝置訪問
- 希望使用開源框架,關鍵時候可以自己除錯或者自定義一下框架
Web API的主要功能:
1. 支援基於Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作
通過不同的http動作表達不同的含義,這樣就不需要暴露多個API來支援這些基本操作。
2. 請求的回覆通過Http Status Code表達不同含義,並且客戶端可以通過Accept header來與伺服器協商格式,例如你希望伺服器返回JSON格式還是XML格式。
3. 請求的回覆格式支援 JSON,XML,並且可以擴充套件新增其他格式。
4. 原生支援OData。
5. 支援Self-host或者IIS host。
6. 支援大多數MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。