應用程序編程接口
編輯應用程序編程接口(API)是計算接口,其限定多個軟件中介之間的相互作用。它定義了可以進行的調用或請求的類型,如何進行調用,應使用的數據格式,要遵循的約定等。它還可以提供擴展機制,以便用戶可以通過各種方式擴展現有功能。在不同程度上。應用程序編程接口API可以是完全自定義的,特定于組件,也可以基于行業標準進行設計以確保互操作性。通過信息隱藏,API支持模塊化編程,從而允許用戶獨立于實現使用接口。
目的
編輯在構建應用程序時,API(應用程序編程接口)通過抽象化底層實現并僅公開開發人員需要的對象或動作來簡化編程。電子郵件客戶端的圖形界面可能會為用戶提供執行獲取和突出顯示新電子郵件的所有步驟的按鈕,而用于文件輸入/輸出的應用程序編程接口可能會為開發人員提供一種將文件從一個位置復制到另一個位置的功能,而無需要求開發人員了解幕后發生的文件系統操作。
用法
編輯庫和框架
API通常與軟件庫有關。該應用程序編程接口描述并規定了“預期行為”(一種規范),而該庫是這套規則的“實際實現”。
單個API可以采用共享同一編程接口的不同庫的形式,具有多種實現(或者沒有一種抽象)。
將API與實現分開,可以允許以一種語言編寫的程序使用以另一種語言編寫的庫。例如,由于Scala和Java編譯為兼容的字節碼,因此Scala開發人員可以利用任何Java API。
應用程序編程接口的使用取決于所涉及的編程語言的類型。諸如Lua之類的過程語言的API?可以主要由執行代碼,處理數據或處理錯誤的基本例程組成,而諸如Java之類的面向對象語言的API則可以提供類及其類方法的規范。
語言綁定也是應用程序編程接口。通過將一種語言的特性和功能映射到以另一種語言實現的接口,語言綁定允許在以另一種語言進行開發時使用以一種語言編寫的庫或服務。等工具SWIG和F2PY,一個的Fortran?-到-?的Python接口發生器,便于這樣的接口的創建。
應用程序編程接口也可以與軟件框架相關:框架可以基于實現了多個API的多個庫,但是與API的正常使用不同,對框架內建行為的訪問是通過使用新類擴展其內容來實現的插入框架本身。
而且,控制的總體程序流程可以通過控制反轉或類似機制而不受調用者的控制,而不受框架的控制。
操作系統
應用程序編程接口可以指定應用程序和操作系統之間的接口。例如,POSIX指定一組通用API,這些API旨在使為POSIX兼容操作系統編寫的應用程序能夠為另一個POSIX兼容操作系統編譯。
Linux和Berkeley軟件發行版是實現POSIX API的操作系統的示例。
Microsoft已顯示出對向后兼容API的堅定承諾,尤其是在其Windows API(Win32)庫中,因此較舊的應用程序可以使用稱為“兼容模式”的特定于可執行文件的設置在較新版本的Windows上運行。
API與應用程序二進制接口(ABI)的不同之處在于,API是基于源代碼的,而ABI是基于二進制的。例如,POSIX提供API,而Linux Standard Base提供ABI。
遠程API
遠程API允許開發人員通過協議(特定的通信標準)來操縱遠程資源,該協議允許不同的技術一起工作,而不論語言或平臺如何。例如,Java數據庫連接API允許開發人員使用相同的功能集查詢許多不同類型的數據庫,而Java遠程方法調用?API使用Java遠程方法協議來允許調用遠程操作但在本地運行的功能開發人員。
因此,遠程API在維護面向對象編程中的對象抽象時很有用;在代理對象上本地執行的方法調用,使用遠程協議在遠程對象上調用相應的方法,并獲取要在本地用作返回值的結果。
對代理對象的修改也將導致對遠程對象的相應修改。
Web API
Web API是企業和使用其資產的應用程序之間進行交互的已定義接口,這也是服務水平協議(SLA),用于指定功能提供者并為其API用戶公開服務路徑或URL。應用程序編程接口方法是一種體系結構方法,它圍繞為服務于不同類型消費者的不同應用程序提供一組服務程序接口的方法。
當在Web開發的上下文中使用API??時,通常將其定義為一組規范,例如超文本傳輸??協議(HTTP)請求消息以及響應消息的結構定義,通常以可擴展標記語言(XML))或JavaScript對象表示法(JSON)格式。例如運輸公司API,可以將其添加到以電子商務為中心的網站上,以方便訂購運輸服務,并自動包括當前運輸價格,而站點開發人員不必在網絡數據庫中輸入運輸人的價格表。盡管“ Web API”在歷史上實際上是Web服務的代名詞,但最近的趨勢(所謂的Web 2.0)已從基于簡單對象訪問協議(SOAP)的Web服務和面向服務的體系結構(SOA)轉向更直接的表示狀態轉移(REST)樣式的Web資源和面向資源的體系結構(ROA)。這種趨勢的一部分與語義Web向資源描述框架(RDF)的發展有關,RDF是一種基于Web的本體工程技術的概念。Web API允許將多個API組合到稱為mashup的新應用程序中。在社交媒體領域,Web API使Web社區可以促進在社區和應用程序之間共享內容和數據。這樣,可以將在一個地方動態創建的內容發布并更新到Web上的多個位置。例如,Twitter的REST API允許開發人員訪問Twitter的核心數據,而Search API為開發人員提供了與Twitter搜索和趨勢數據進行交互的方法。
應用程序編程接口設計
編輯API的設計對其使用有重大影響。信息隱藏的原理將編程接口的作用描述為通過隱藏模塊的實現細節來實現模塊化編程,從而使模塊用戶無需了解模塊內部的復雜性。因此,API的設計試圖僅提供用戶期望的工具。編程接口的設計代表了軟件體系結構的重要組成部分,即復雜軟件的組織。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/111884/