你可能已經看到了術語“API”的出現。作業系統、web瀏覽器和應用程式更新經常為開發人員釋出新的API。但是什麼是API呢?
術語API是首字母縮寫,它代表“應用程式程式設計介面”
把API想象成餐館的選單。選單提供了您可以點的菜的列表,以及每道菜的描述。當你指定你想要的選單專案時,餐廳的廚房會為你提供一些成品菜。你不知道餐廳是怎麼準備食物的,其實你也不需要。
類似地,API列出了開發人員可以使用的一系列操作,以及對他們所做工作的描述。開發人員不一定需要知道作業系統是如何構建和顯示“另存為”對話方塊的。他們只需要知道它可以在他們的應用程式中使用。
這並不是一個完美的比喻,因為開發人員可能必須向API提供自己的資料才能得到結果,所以也許它更像是一家高階餐廳,您可以提供廚房將使用的一些自己的配料。
但它大體上是準確的。api允許開發人員透過利用平臺的實現來完成基本工作,從而節省時間。這有助於減少開發人員需要建立的程式碼量,也有助於為同一平臺的應用程式建立更多的一致性。api可以控制對硬體和軟體資源的訪問。
假設你想為iPhone開發一個應用程式。蘋果的iOS作業系統提供了大量的API,就像其他作業系統一樣,讓你更容易使用。
例如,如果您想嵌入一個web瀏覽器來顯示一個或多個web頁面,您不必僅為應用程式從頭開始編寫自己的web瀏覽器。您可以使用WKWebView API在應用程式中嵌入WebKit(Safari)瀏覽器物件。
如果你想從iPhone的相機上拍攝照片或影片,你不必編寫自己的相機介面。你可以使用cameraapi將iPhone的內建攝像頭嵌入到你的應用程式中。如果API不存在使這變得容易,應用程式開發人員將不得不建立自己的相機軟體並解釋相機硬體的輸入。但是蘋果的作業系統開發人員已經完成了所有這些艱苦的工作,所以開發人員只需使用cameraapi嵌入一個攝像頭,然後就可以開始構建他們的應用程式了。而且,當蘋果改進了攝像頭API後,所有依賴它的應用程式都會自動利用這一改進。
這適用於所有平臺。例如,是否要在Windows上建立對話方塊?有一個API。想在Android上支援指紋認證嗎?這也有一個API,所以你不必測試每一個不同的Android**商的指紋感測器。開發者不必一次又一次地重新發明輪子。
api還用於控制對硬體裝置和軟體功能的訪問,應用程式可能不一定有使用許可權。這就是為什麼api經常在安全性方面扮演重要角色。
相關:如何阻止網站詢問你的位置
例如,如果您曾經訪問過一個網站,並且在瀏覽器中看到一條訊息,表明該網站要求檢視您的精確位置,則該網站正在嘗試在您的瀏覽器中使用地理位置API。Web瀏覽器公開了這樣的API,使得Web開發人員可以很容易地訪問您的位置—他們只需問“您在哪裡?”?“而且瀏覽器可以透過訪問GPS或附近的Wi-Fi網路來查詢您的物理位置。
然而,瀏覽器也透過API公開這些資訊,因為可以控制對它的訪問。當一個網站想要訪問你的確切物理位置時,他們唯一能得到它的方法就是透過locationapi。而且,當一個網站試圖使用它時,你可以選擇允許或拒絕這個請求。訪問GPS感測器等硬體資源的唯一方法是透過API,因此瀏覽器可以控制對硬體的訪問並限制應用程式的功能。
這一原則同樣適用於iOS和Android等現代移動作業系統,在這些系統中,移動應用程式擁有透過控制對api的訪問來強制執行的許可權。例如,如果開發人員試圖透過camera API訪問攝像頭,您可以拒絕該許可權請求,並且應用程式無法訪問您裝置的攝像頭。
像在Windows、Mac和Linux上那樣使用許可權的檔案系統具有由檔案系統API強制執行的那些許可權。典型的應用程式不能直接訪問原始物理硬碟。相反,應用程式必須透過API訪問檔案。
api的使用還有其他各種原因。例如,如果您曾經看到一個Google地圖物件嵌入到一個網站上,那麼該網站正在使用Google地圖API來嵌入該地圖。Google將這樣的api公開給web開發人員,他們可以使用這些api在自己的網站上釋出複雜的物件。如果這樣的api不存在,開發人員可能需要建立自己的地圖並提供自己的地圖資料,以便在網站上放置一個小的互動式地圖。
而且,因為它是一個API,Google可以控制第三方網站對Google地圖的訪問,確保他們以一致的方式使用它,而不是試圖雜亂地嵌入一個顯示Google地圖網站的框架。
這適用於許多不同的線上服務。有一些api可以從googletranslate請求文字翻譯,或者在網站上嵌入Facebook評論或tweet。
相關:什麼是OAuth?Facebook、Twitter和Google的登入按鈕是如何工作的
OAuth標準還定義了許多api,允許您使用另一個服務登入到一個網站,例如,使用您的Facebook、Google或Twitter帳戶登入到一個新網站,而不必僅為該網站建立新的使用者帳戶。api是標準契約,定義了開發人員如何與服務進行通訊,以及開發人員應該期望收到的輸出型別。
如果你已經完成了這一步,你會對什麼是API有更好的瞭解。歸根結底,除非你是一個開發人員,否則你不需要知道什麼是API。但是,如果您看到一個軟體平臺或服務為各種硬體或服務添加了新的api,那麼開發人員應該更容易利用這些特性。
圖片來源:patpitchaya/Shutterstock.com網站.
...最奇怪的命名程式之一是Vulkan執行時庫。讓我們看看這是什麼,它的目的,以及你應該怎麼做。 ...
...你經營一個網站,你肯定對訪問它的人感興趣。但是,為什麼要讓自己矇在鼓裡,去猜測你的訪客或者處理不完整的資訊呢? ...
...像在比薩餐廳下訂單一樣。你不能進廚房告訴他們你想要什麼。你需要一個服務員來拿你的菜,在你的比薩餅回來之前把它傳達給廚房。 ...
...工作。這個API現在預設啟用,應該會有所改進。 相關:什麼是人機介面裝置(HID)? 網路應用可以使用nfc Android上的Chrome89預設啟用“網路NFC”。這意味著web應用現在可以讀寫NFC(近場通訊)標籤。通常,只有本地應用程式能...