Application Programming Interface,縮寫:API;又稱為應用程式編譯介面
認識 API 前,先認識介面吧。
我們人沒辦法和機器做互動,所以人和機器溝通就是透過介面,泡咖啡時我們是透過咖啡機上的按鈕(那些就是介面)來叫機器泡咖啡,或是常常聽到手機介面不好操作之類的。
因此介面(Interface)就是兩個主體溝通的交接點,透過這個介面來溝通,讓雙方交換資料等等,例如我和作業系統、電腦系統和外部裝置(補充一)、網路不同伺服器交換資料
補充一 : USB (Universal Serial Bus) 是連接電腦系統與外部裝置的一種序列埠匯流排標準
常常聽到別人說串 API,那是什麼?
Huli 好文推推 : 從拉麵店的販賣機理解什麼是 API,基本上說串 API 指的是 Web API,透過 HTTP 協定的 API。
想不到其他例子還是用 Huli 文章舉的例子來說明:
例如家裡開了間民宿,於是寫了管理訂房的網站,但只有這樣曝光率太低,我想要增加銷售數量,於是便有了把自家在各大訂房網上架的念頭,所以該怎麼做呢?
我必須提供空房資訊給各大訂房網站,那就把資料庫全給他好了,疑!不對啊,這樣我客戶的個人資料不就全曝光了。我不可能把我所有資料都給各大訂房網,各大訂房網也不可能把所有資料給我,因此這就是為什麼要串 API,而不是把整盤好好端給別人,而當說到串 API ,背後隱含的意思其實是「交換資訊」,而這資訊我可以決定什麼要給(空房資訊),什麼不要給(客戶資料)。
client 和 server
從上面民宿例子來說你扮演客戶端的一方,同時也是伺服器端。
client 端:串接他人開發的 Web API
做為客戶端,你向某訂房網 Web API 伺服器發送請求,以拿到訂單資訊。大致步驟如下 :
- 某訂房網的官方網站,找到你要使用的 API。
- 閲讀某訂房網 API 的文件,了解如何使用各大訂房網 API
- 完成程式碼改寫之後,就可以在網頁中讀取訂單資訊
server 端:開發 Web API 給他人使用
將你擁有的資料庫開放給某訂房網使用。大致步驟如下 :
- 撰寫 API 的使用方式及格式等等。
- 按照文件開發一個 Web API,在自己網站上開發可供外部呼叫的方法 (method),用這個方式做為使用介面。
API 練習
串接 HTTP API 實戰 : 針對真實的API測試前端
實作 API : 寫一隻程式去呼叫 Twitch API,並拿到「最受歡迎的遊戲列表(Get Top Games)」
額外補充
SDK 與 API 差別 ?
軟體開發套件(Software Development Kit, SDK)
例如 :
Twitter SDK
twitter.getTime()
SDK 就是把東西都包裝好,只要去用它就好了