iT邦幫忙

2024 iThome 鐵人賽

DAY 15
1

Who the hell are you API

image alt

前言

想想你在使用 Booking(或是任何飯店 APP、購物網站、機票查詢等),為什麼單一個頁面卻能顯示各家飯店的資訊?那是因為有 Surfsh...(開放接業配)。
image alt

這其實是因為有一項功能叫做 API(應用程式介面,英語:Application Programming Interface),它能從飯店合作方的伺服器裡調取最新資訊,比如房型、評價、價格等等。我們再複習一下,Ajax 透過 API 發送 HTTP 請求,並以 JSON 或 XML 格式傳送數據,伺服器接收到後再回傳資料,並顯示在前端供使用者查看。這就是 API 的主要功能,當然還有很多,例如地圖嵌入也是 API 的應用,像 Google Maps 就常用於 APP 中顯示位置資訊。諸如此類。

Fun fact

聽說點選下方網站可以看到很多神奇的公開API
https://rapidapi.com/hub

麻瓜解釋

image alt
今天小銘和小華去一間高級餐廳用餐(比方購物網站),從坐下的那刻起,這兩位帥哥就不需要再站起來走動了,因為有一位專業的服務員叫做 API。他的職責就是將兩位帥哥點的菜送進廚房(後台)。當他們送出訂單那一刻(按下搜尋),這位 API 就把小銘和小華選的內容送到廚房。等 API 收到處理好的餐點(資料)後,再將餐點送到桌上(瀏覽頁面),這就是 API 的作用,即作為訊息傳遞的橋樑。

再舉例來說,當你使用旅遊 APP 訂機票並想要比價時,輸入國家、座位、日期等資料(可以理解為上面的餐點),然後按下送出,這時 API 會根據你所輸入的值送到相關網站(各家航空公司或代理),從裡面獲取對應的資訊,並將其回傳到瀏覽器上,讓使用者查看。這樣來回的傳輸過程,就是 API 所做的事情。

起源

image alt
早在 20 世紀 50 年代,API 就被視為促進兩台電腦之間通訊的潛在方法。這個術語首次出現在 1951 年,當時 Maurice Wilkes 和 David Wheeler 在他們的書籍《The Preparation of Programs for an Electronic Digital Computer》中提到了這項技術。

那時的 API 主要以簡單的命令列介面存在,讓程式設計師能夠進行基本的電腦互動。雖然這些早期的 API 功能有限,但為後來更強大的 API 奠定了基礎。

1960 至 1970 年代,API 開始被理解為單一應用程式與電腦系統其他部分的交互方式。

1974 年,論文《The Relational and Network Approaches: Comparison of the Application Programming Interface》首次正式引入 API 這一術語,並將其應用於資料庫的領域。

1990 年,隨著網際網路的發展,API 開始允許應用程式與網路上其他系統進行資料交換。雖然當時的 API 還處於早期階段,但已經為未來的發展奠定了良好基礎。

2000 年代,隨著應用程式的普及,許多企業開始將內容遷移到雲端。Salesforce、eBay 和 Amazon 等公司率先提供服務,使用 API 來透過 HTTP 提供 JSON 或 XML 格式的數據。隨著各種企業逐漸採用雲端和 API 優先的服務模型,API 的應用範圍和重要性持續擴大。

2007 年,Apple 推出 iPhone,API 更徹底改變了企業基礎設施的部署方式。

2010 年代,開始出現第三方服務,比如支付、CRM 等等。

後記

API 如同數位時代的絲綢之路,是不同軟體系統之間的溝通橋樑。API 促進了應用程式之間的數據交換與協作。如果沒有 API,現代軟體將變得封閉且孤立。試想,如果沒有它,我們將無法使用第三方支付、XHR、Ajax 也將無路可走,開發過程也會更加繁瑣,因為無法取得伺服器資料。

所以閱讀此文的各位,請帶著感恩之心使用這些技術,並感謝那些為了推動世界進步而無私奉獻的開發者們。

補充

今天與夥伴討論了 API,並閱讀了API 到底是什麼?用白話文帶你認識這篇文章,我認為有幾點值得探討。

API 是一個按鈕(比喻,其實是一串程式碼或技術),當按下按鈕後(啟動程式碼或技術),後續的事情不需要再做,資料就會傳到手上。

  • 對於看文章的你來說:API 就像一個可互動的按鈕,例如電視遙控器。使用者按下電源按鈕就能開啟電視,背後的執行原理你不需要知道,因為過程繁瑣,且工程師已經處理好了,只需按下按鈕即可達成你的目的。

  • 對於前後端協作時(如:Restful API):API 像是一個窗口,讓前端透過這窗口與後端溝通。儘管不是真的“按下按鈕”,但這功能就像執行某個操作,讓後端傳回所需的資料。

參考

The History and Evolution of APIs | Traefik Labs
API 到底是什麼? 用白話文帶你認識 - CodingBar - Medium
New to Special Collections: The First Published Book on Computer Programming | CMU Libraries


上一篇
DAY14 Vite 抽真空
下一篇
DAY16 NPM 好大包
系列文
麻瓜的程式翻譯書《Who the hell are you XXX》29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
橘子
iT邦新手 5 級 ‧ 2024-09-29 07:49:35

我聞到了自肥的味道( •́ὤ•̀)

0
jeremykuo
iT邦新手 5 級 ‧ 2024-09-29 10:18:59

這篇太水了,怎麼只有「小銘小華兩位帥哥」這幾個字/images/emoticon/emoticon15.gif

我要留言

立即登入留言