API定義前端
API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工做機制的細節。linux
分類web
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
在linux中,用戶編程接口API遵循了UNIX中最流行的應用編程界面標準---POSIX標準。POSIX標準是由IEEE和ISO/IEC共同開發的標準系統。該標準基於當時現有的UNIX實踐和經驗,描述了操做系統的系統調用編程接口API,用於保證應用程序能夠在源程序一級上在多種操做系統上移植運行。這些系統調用編程接口主要是經過C庫(LIBC)來實現的。
API 聲明
編輯
正如在"什麼是API"中所說,API函數包含在位於系統目錄下的DLL文件中。你能夠本身輸入API函數的聲明,但VB提供了一種更簡單的方法,即便用API Text Viewer。 要想在你的工程中聲明API函數,只需運行API Text Viewer,打開Win32api.txt或MDB。若是你已經把它轉換成了數據庫的話,這樣能夠加快速度。 使用預約義的常量和類型也是一樣的方法。 API除了有應用「應用程序接口」的意思外,還特指API的說明文檔,也稱爲幫助文檔。
程序功能
遠程過程調用(RPC):經過做用在共享數據緩存器上的過程(或任務)實現程序間的通訊。
標準查詢語言(SQL):是標準的訪問數據的查詢語言,經過通用數據庫實現應用程序間的數據共享。
文件傳輸:文件傳輸經過發送格式化文件實現應用程序間數據共享。
信息交付:指鬆耦合或緊耦合應用程序間的小型格式化信息,經過程序間的直接通訊實現數據共享。
當前應用於 API 的標準包括ANSI 標準SQL API。另外還有一些應用於其它類型的標準尚在制定之中。API 能夠應用於全部計算機平臺和操做系統。這些API 以不一樣的格式鏈接數據。每種數據格式要求以不一樣的數據命令和參數實現正確的數據通訊,但同時也會產生不一樣類型的錯誤。所以,除了具有執行數據共享任務所需的知識之外,這些類型的API 還必須解決不少網絡參數問題和可能的差錯條件,即每一個應用程序都必須清楚自身是否有強大的性能支持程序間通訊。相反因爲這種API 只處理一種信息格式,因此該情形下的信息交付API 只提供較小的命令、網絡參數以及差錯條件子集。正由於如此,交付API 方式大大下降了系統複雜性,因此當應用程序須要經過多個平臺實現數據共享時,採用信息交付API 類型是比較理想的選擇。
WeBAPI
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了。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。