書名: API安全技術與實戰作者名: 錢君生 楊明 韋巍編著本章字數: 1174字更新時間: 2021-07-08 11:51:07
1.1 什么是API
關于API的含義,先來看看維基百科上對API的描述。

從這段描述可以了解到,API是Application Programming Interface的簡寫,又稱為應用程序編程接口,它通過定義一組函數、協議、數據結構,來明確應用程序中各個組件之間的通信與數據交互方式,將Web應用、操作系統、數據庫以及計算機硬件或軟件的能力以接口的形式,提供給外部系統使用。這樣的描述可能過于抽象,以實物類比可能更易于讀者理解API的含義。比如在房屋裝修的過程中,為了用電方便,通常會預留出插座的位置,為外接設備提供電源,但每一個設備的電源接入方式各不相同,為了統一不同的接入方式,插座通常使用三孔插座或兩孔插座,當設備接入供電時,也同樣使用三孔插頭或兩孔插頭與之對接。對應到軟件中,對外統一提供的三孔或兩孔插座,即是這里討論的API,而到底三孔還是兩孔,就是API協議定義的內容。
在API的發展歷程中,根據其表現形式的不同,大致分為如下4種類型。
1.類庫型API
類庫型API通常是一個類庫,它的使用依賴于特定的編程語言,開發者通過接口調用,訪問API的內置行為,從而處理所需要的信息。例如,應用程序調用微軟基礎類庫(MFC),如圖1-1所示。

●圖1-1 應用程序調用微軟基礎類庫(MFC)
2.操作系統型API
操作系統型API通常是操作系統層對外部提供的接口,開發者通過接口調用,完成對操作系統行為的操作。例如,應用程序調用Windows API或Linux標準庫,如圖1-2所示。

●圖1-2 應用程序調用Windows API或Linux標準庫
3.遠程應用型API
遠程應用型API是開發者通過標準協議的方式,將不同的技術結合在一起,不用關心所涉及的編程語言或平臺,來操縱遠程資源。例如,Java通過JDBC連接操作不同類型的數據庫,如圖1-3所示。

●圖1-3 Java通過JDBC連接操作不同類型的數據庫
4.Web應用型API
Web應用型API通常使用HTTP協議,在企業與企業、企業內部不同的應用程序之間,通過Web開發過程中架構設計的方法,以一組服務的形式對外提供調用接口,以滿足不同類型、不同服務消費者的需求。例如,社交應用新浪微博的用戶登錄,如圖1-4所示。

●圖1-4 社交應用新浪微博的用戶登錄
從上述介紹的4種API類型可以看出,API并非新生事物,很早就存在著,只是隨著技術的發展,這個專有名詞的含義已經從當初單一的類庫型API或操作系統型API擴展到如今的Web應用型API接口,這是商業發展和業務多樣化驅動技術不斷改進的必然結果。同時,API的存在對業務的意義也已經從單純的應用程序接口所定義的用于構建和集成應用程序軟件的一組定義和協議,變成了業務交互所在的雙方之間的技術約定。使用API技術的業務雙方,其產品或服務與另一方產品和服務在通信過程中,不必知道對方是如何實現的。就像在生活中需要使用電,只要按照要求接上電源就會有電流,而不必知道電流的產生原理自己來發電。不同的行業應用可以獨立去構建自己的API能力再對外部提供服務,這樣做的好處是大大地節約了社會化服務能力的成本,簡化了應用程序開發的難度,節省了時間,為業務能力的快速迭代提供了可操作的機會。