用一個通俗的例子講清楚API

APEMESH發表於2019-03-28

隨著移動網際網路的發展, 基於網際網路的應用正變得越來越普及,在這個過程中,更多的平臺將自身的資源開放給開發者來呼叫。對外提供的API 呼叫使得平臺之間的內容關聯性更強,同時這些開放的平臺也為使用者、開發者和中小網站帶來了更大的價值。

那麼API究竟是何方神聖?首先我們在百度百科查詢到的解釋是:API(Application Programming Interface,應用程式程式設計介面)是一些預先定義的函式,目的是提供應用程式與開發人員基於某軟體或硬體得以訪問一組例程的能力,而又無需訪問原始碼,或理解內部工作機制的細節。

聽起來在理解上還是有些困惑,如何通俗理解什麼是API?當我們在智慧移動端使用應用程式時,應用程式通過網路將資料傳送到伺服器,然後伺服器會檢索分析資料,執行特定的操作並將其重新傳送回你的手機。最後應用程式解析完這些資料,並以“可讀的方式”向你提供所需的資訊,要完成這一系列過程,API就是關鍵。

我們可以再舉一個大家熟悉的例子來進一步解釋API。想象這樣一個場景,當你來到一家餐館,拿起選單進行點餐時,首先看到的時選單上羅列的眾多菜品資訊,廚房將是你點餐“系統”的一部分,但其中的關鍵環節是如何將點菜的資訊傳達至廚房,並將食物送到餐桌上,這個時候服務員就起到作用了,服務員就是一個信使(API),他接收你的點菜資訊,並告訴廚房(系統)該做什麼,在這種情況下, 服務員以“食物”作為資訊反饋。

為了進一步加深大家對API的理解,我們再列一個實際的API示例,線上搜尋航班的過程就像在餐館點餐一樣,其中也有很多種選擇,包括城市,往返航班時間等。假設你正在預訂航空公司網站上的航班,你可以選擇往返出發的城市和時間、客艙等級以及其他服務。為了準確預訂航班,你可以預覽查詢航空公司網站,訪問他們的資料庫,看一看在你出發的時間是否有空位,以及航行費用等資訊。

不過,如果你不想用使用航空公司的網站,還有沒有其他可以直接訪問航空資訊的渠道呢?那麼比如像Kayak、Expedia等線上旅行服務平臺就成為獲取航班資訊的另一種渠道,因為這些平臺整合了來自多個航空公司資料庫的資訊,你想要獲取的資訊將會更加全面,這其中的邏輯又是怎樣的呢?

其實在上面的示例中,旅遊服務平臺與航空公司網站的API是相聯絡的。API就是一個介面,與餐館的服務員作用一樣,另外,線上旅遊服務平臺可以要求從航空公司網站的資料庫中調取航班資訊,以便使用者預訂座位、行李選項等。API在獲取航空公司網站對使用者請求的反饋之後,就會將相關資訊傳送回線上旅遊服務平臺,最終線上旅遊服務平臺上顯示的資訊就是使用者所需要的最新航班資訊。

不僅如此,API還提供了一層安全性。我們在使用手機的過程中,手機的資料在沒有授權的情況下,是不會暴露給其他伺服器的,同樣道理,伺服器也從來不會輕易將資料提供給你的手機。相反,每個系統都只與小的資料包相聯絡,並且只共享必要的資料——比如我們線上訂購外賣,我們首先會告訴店家想吃什麼,他們也會告訴我們用什麼作為回報,完成這些,才能得到想要的外賣。

當前,API的價值已經越來越重要,除了像谷歌、eBay、Salesforce.com、Amazon及Expedia這樣的大公司是少數通過API賺錢。絕大多數公司的大部分業務收入來源於API,所以也就有了“API經濟”,其中指的就是API市場。

很不過多年以來,“API”通常描述的是應用程式的任何型別的通用連線介面。然而,隨著技術的發展和市場的需求增大,現代API具有的一些特性,使其價值和實用性變得越來越高:

•現代API遵循標準(通常是HTTP和REST),這些標準對開發人員友好,易於訪問和廣泛理解;

•API被視為產品而不是程式碼。它們是為特定的受眾(例如,移動開發人員)而設計的,它們被記錄下來,並且以使用者可以對其維護和生命週期有特定期望的方式進行版本控制;

•因為它們更加標準化,所以在安全性和管理方面有更強的規範性,並對效能和規模進行監視和管理;

•與其他任何產品化軟體一樣,現代API具有自己的軟體開發生命週期(SDLC),包括設計、測試、構建、管理和版本控制。此外,現代API的使用和版本控制都有很好的文件。

當前,越來越多的企業會選擇利用 API,將公司生態系統中的優質合作伙伴匯聚在一起,並重新挖掘隱藏在背後的巨大經濟價值,所以,“API經濟”也已經成為各大企業數字化發展的必經之路,IDC曾在2018年的報告當中將API經濟作為全球第二的技術趨勢,顯示在接下來的三年裡,亞太地區(不含日本)45% 的組織將會採用核心雲API戰略,因此,以API為核心驅動的新經濟亟待爆發。

相關文章