API基礎概念

對於初學者來說,API一直不容易理解的專有名詞
全名是Application Programming Interface

每個單字都懂,但是組合起來還是不知道是什麼意思
它是一個廣義的概念
只要讓不同電腦程式在網路上,可以互相溝通、互相傳遞訊息的方式,都可以稱做API
因為每台電腦的系統都不同,所以需要一種特定的方式(標準化的方式)來交換資料
舉個例子
假設你今天到了星巴克咖啡店,星巴克的菜單可能會分類
咖啡類
星冰樂
茶類
果汁類

在咖啡類有”焦糖瑪奇朵”
可能會記載內容物有焦糖醬、濃縮咖啡、綿密奶泡、牛奶
你看了這些內容物,是不是你想要的
某些內容物你想要調整或是客製化,譬如:濃縮咖啡要2份,牛奶要改成植物性杏仁奶
接著在櫃檯點飲料
店員會和您反映,他們有什麼材料或沒有什麼材料(如果完全沒有材料,以網站來比擬,就顯示404畫面)
接著店員收到你的需求,就開始做飲料
你只要負責在旁邊等飲料完成,而不需要知道來源以及過程(咖啡豆烘烤溫度多少、咖啡豆在哪裡種植的、奶泡要打多久的時間)

API類似這個概念
只要知道需求是什麼,然後發送出去
使用者要的東西就會自動送到面前

以下用HTTP的API做說明
使用者今天要訂機票
一定會在網站輸入資料
包括護照號碼、個人基本資料、出發地、出發日期、信用卡資訊等等
輸入完成後,只要點下確認鍵送出去
購買的機票就會出來了

其實背後很多東西在運作
按下確認鍵的那一瞬間(發送請求)
像是信用卡資訊,就要給金流的服務商Server去做驗證和授權(處理收到的請求),所以機票的網站要連接到金流的API,交給它們處理,完成最後的交易流程
訂購機票的網站開發者不需要自己寫程式確認信用卡有沒有過期、信用卡額度等等等

除此之外
在Web開發的過程中,前端和後端的協調,也使用到API做為橋樑