api全稱“Application Programming Interface”,中文意思為“應用程序編程接口”,是一些預先定義的函數,目的是提供應用程序與開發人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。
本教程操作環境:windows7系統、Dell G3電腦。
API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,目的是提供應用程序與開發人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節
應用程序接口
想象一下像餐館菜單中的API。菜單提供您可以訂購的菜肴列表,以及每道菜的描述。當您指定所需的菜單項時,餐廳的廚房可以完成工作并為您提供一些成品菜肴。你不確切知道餐廳如何準備食物,你真的不需要。
類似地,API列出了開發人員可以使用的一系列操作,以及他們所做的事情的描述。開發人員不一定需要知道如何構建操作系統并顯示“另存為”對話框。他們只需要知道它可以在他們的應用程序中使用。
這不是一個完美的比喻,因為開發人員可能必須提供他們自己的數據到API來獲得結果,所以也許它更像是一個高檔餐廳,你可以提供廚房將使用的一些自己的成分。
但它的準確性非常準確。API允許開發人員通過利用平臺的實現來完成細節工作,從而節省時間。這有助于減少開發人員需要創建的代碼量,還有助于在同一平臺的應用程序之間創建更高的一致性。API可以控制對硬件和軟件資源的訪問。
API使開發人員的生活更輕松
假設您想為iPhone開發應用程序。Apple的iOS操作系統提供了大量的API – 正如其他操作系統所做的那樣 – 讓您更輕松。
例如,如果要嵌入Web瀏覽器以顯示一個或多個網頁,則無需為您的應用程序從頭開始編寫自己的Web瀏覽器。您可以使用WKWebView API在應用程序中嵌入WebKit(Safari)瀏覽器對象。
如果您想從iPhone的相機中捕捉照片或視頻,則無需編寫自己的相機界面。您可以使用相機API在您的應用中嵌入iPhone的內置相機。如果不存在API以使這一點變得簡單,那么應用程序開發人員必須創建自己的相機軟件并解釋相機硬件的輸入。但Apple的操作系統開發人員已經完成了所有這些艱苦的工作,因此開發人員可以使用相機API嵌入相機,然后繼續構建他們的應用程序。而且,當Apple改進相機API時,所有依賴它的應用程序都會自動利用這一改進。
這適用于每個平臺。例如,您想在Windows上創建一個對話框嗎?有一個API。想在Android上支持指紋認證嗎?還有一個API,所以你不必測試每個不同的Android制造商的指紋傳感器。開發人員不必一遍又一遍地重新發明輪子。
API控制對資源的訪問
API還用于控制對應用程序未必具有使用權限的硬件設備和軟件功能的訪問。這就是API經常在安全性方面發揮重要作用的原因。
例如,如果您訪問過某個網站并在瀏覽器中看到該網站要求查看您的確切位置的消息,則該網站會嘗試在您的網絡瀏覽器中使用地理定位API。Web瀏覽器公開這樣的API,使Web開發人員可以輕松訪問您的位置 – 他們可以詢問“您在哪里?”,瀏覽器可以輕松訪問GPS或附近的Wi-Fi網絡以查找您的物理位置。
但是,瀏覽器還會通過API公開此信息,因為它可以控制對它的訪問。當網站想要訪問您的確切物理位置時,他們可以通過位置API獲取它的唯一方法。并且,當網站嘗試使用它時,您 – 用戶 – 可以選擇允許或拒絕此請求。訪問GPS傳感器等硬件資源的唯一方法是通過API,因此瀏覽器可以控制對硬件的訪問并限制應用程序可以執行的操作。
同樣的原則也用于現代移動操作系統,如iOS和Android,其中移動應用程序具有可以通過控制對API的訪問來實施的權限。例如,如果開發人員嘗試通過相機API訪問相機,則可以拒絕權限請求,并且應用無法訪問設備的相機。
使用權限的文件系統(如在Windows,Mac和Linux上一樣)具有文件系統API強制執行的權限。典型應用程序無法直接訪問原始物理硬盤。相反,應用程序必須通過API訪問文件。
API用于服務之間的通信
API也用于各種其他原因。例如,如果您曾在網站上看過嵌入的Google地圖對象,則該網站會使用Google Maps API嵌入該地圖。Google向這些Web開發人員公開了這樣的API,然后他們可以使用API在他們的網站上填充復雜的對象。如果這樣的API不存在,開發人員可能必須創建自己的地圖并提供他們自己的地圖數據,只是為了在網站上放置一個小的交互式地圖。
而且,由于它是一個API,谷歌可以控制在第三方網站上訪問谷歌地圖,確保他們以一致的方式使用它,而不是試圖嵌入一個顯示谷歌地圖網站的框架。
這適用于許多不同的在線服務。有一些API可用于從Google翻譯中請求文本翻譯,或在網站上嵌入來自Twitter的Facebook評論或推文。
該OAuth的標準還定義了一些API,允許您登錄到網站與其他服務,例如,使用您的Facebook,谷歌,或Twitter帳戶登錄到一個新的網站,而不只是該網站創建一個新的用戶帳戶。API是標準合同,用于定義開發人員如何與服務進行通信,以及開發人員應該收到的輸出類型。
除非您是開發人員,否則您不需要知道API是什么。但是,如果您看到軟件平臺或服務為各種硬件或服務添加了新API,那么開發人員應該更容易利用這些功能。