三月 8, 2022 設計與程式

API 是什麼?不是工程師的你都可以理解什麼是 API

Hsiang L. | HubSpot 數位轉型專家

API 是什麼 ?

這是寫給完全不懂什麼是 API 朋友,像是學生、行銷、設計,比較多都是在敘述 API 是什麼的理念,以及怎麼運作,不會有深入討論 API 的處理方式,以及如何寫 API 讓跨系統溝通的技巧,本篇都是在敘述 API 的概念以及使用情境。

API 為 Application Programming Interface 的簡稱

所以本篇文章有「 三不政策 」

  1. 不討論技術
  2. 不需工程師背景
  3. 不教你怎麼操作 API

所以來看技術的朋友,你們可以先轉台了,剩下的時間讓我們這些技術小白慢慢咀嚼。

好,那我們來開始 !

API 的用意就是讓兩套軟體的資料可以互傳。

API 為跨系統的數據溝通橋樑

什麼意思?

很多公司都會用 API 來擴展他們公司的成長與事業,試想一下,早期的程式都是封閉的,你若希望延伸內部程式的功能,就可能必須請工程師土法煉鋼的方式開發出來,但是有了 API 的串接之後,你可以輕易的去購買或使用另外一套有符合公司想要的軟體,再把資料從原本內部的程式互傳到這個軟體上,光是這裡,就可以減少公司開發的時間成本,加快流程的效率,間接的協助公司快速成長。

你也可以想像,有了 API,他將許多原本可能很封閉的軟體,有了更多的彈性,帶來生活上的便利,這些便利,你可能不知道,但他確實就是使用 API 呀!那你說很便利,那可以說說看嗎?

當然沒問題!

若你是學生的話:查詢字典、翻譯。

若你想查詢今天會不會下雨或放晴天,來決定穿什麼,透過 APP 查詢天氣的 API,即可告訴你今天幾度、會不會下雨等。

若你想要寶可夢的粉絲,在玩寶可夢的時候,想要查詢出沒的地方以及機率,有網站已經統整好這些,並且是用 API 撈取的喔!

若你想要查詢最近上映的電影以及場次的時候,這也是透過 API 整合進來讓你方便查詢或篩選。

API 運作的基本概念

API 之所以被設計出來,主要是為了解決「 不同軟體互傳資料 」的相容性,推出了 API 就有一個統一的規格,可以讓工程師去將資料匯入/匯出至不同的軟體或平台上,對工程師而言,API 是一個「 兩套軟體的對話橋樑 」。

從服務生工作理解 API 

若我們把 API 擬人化放在現實的生活上的話,網路上最經典的案例,就是服務生,我們來看以下的案例:

  1. 你走進了餐廳,坐下來看完菜單了之後,想要點漢堡來吃,所以就舉手,請服務生過來點餐
  2. 服務生會走過來,紀錄了你想吃的餐點,之後再傳達給廚師

你可以把兩端不同的軟體想像成一個是你、另外一個是廚師。

API 就是服務生,在這過程中,服務生會紀錄你想吃的餐點、人數、桌號、座位等等的記錄下來。

之後可以等待廚師回傳給你的東西,也就是漢堡,再透過服務生(API)將餐點傳遞到你的桌上,這樣,我們就完成了一項 API 的對接,我們可以稱為:「點餐」。

1-1

從翻譯 APP 的使用理解 API 

另一個案例,你回想一下翻譯 APP 是如何運作的:

  1. 你開啟 APP,設定好語言要從中文翻譯成日文
  2. 點擊翻譯按鈕,並開始說話「你好,我想要訂餐」
  3. APP 這時會回覆「こんにちは、注文したいです」

以上這個情況,程式會將你所發出的中文聲音,透過翻譯的 API,去資料庫找出特定的語言編解好了之後,回傳給 APP 去做發音成日文的動作,這也是透過 API 達成的。

API 在數位環境的使用情況

現在這個資訊爆炸的時代,API 基本上無所不在,或許你沒有感受他在你身邊,但你可能每天都會用到它喔!我以下舉例一些例子給你參考:

分享貼文

2-3

今天的案例可能是一個比較注重健康飲食的人,逛了某個網站之後,覺得這篇「減肥的五大迷思」非常不錯,想要分享給朋友,於是就按了「 分享至臉書 」的按鈕,透過這個按鈕,執行了這個分享的 API 到你的社群媒體上。

試想一下,若沒有這個分享 API 的話,你得到臉書之後,將連結從網站複製下來,再另外貼在臉書上,光是這個動作,是否就花你幾秒鐘的時間,但這個若是 1、2秒就能處理的事情,不是相當有效率嗎?

使用第三方社群軟體登入或註冊

3-3

好比說,你在購物網站使用「 臉書登入 」、「 LINE 登入 」,這背後用的就是「 驗證 API 」,這可以讓一個購物網站去將你臉書或 LINE 的身份,回傳回去,背後有可能會帶入你的姓名、電話、電子郵件等,這也就間接達成無需你填寫一堆資料,就可以註冊成會員了,因為你的資料都已經從另外一個地方拷貝過來了。

哪裡可以看到大量的第三方登入?

  • 遊戲 - 你在玩手遊的時候是否有選項讓你用臉書或 LINE 登入?
  • 購物網站 - Momo、PCHome 都可以看到

除了以上幾個之外,你還有在哪邊看到可以透過社群媒體登入的呢?

查詢機票、訂房、比價網

4_

我們要出去旅遊的時候,常常會先上 Eztravel、Kayak、Skyscanner 等網站來查詢每間航空公司最優惠的價格。

要做查詢機票這個動作,相信你都必須提供時間點、地區、跟人數等,這個就是網站會透過 API 的方式,將各個航空公司的網站結合起來了之後,透過一個更直覺的方式呈現資料給你。

是不是透過這些網站,結合了「 查詢機票 API 」,你就能一目瞭然的知道哪家航空最為便宜、停靠點、時間等等的呢?

假設沒有這些 API 的話,若你想要買票,是否得親自到旅行社或自行上各自航空的網站比價做功課呢?

查詢天氣

5-2

無論你是用嘿 Siri、OK Google、還是手動用 APP 查詢,有沒有想過這些天氣預報的資料是怎麼來的?這些都是用 API 的方式,透過你輸入的地點跟時間,來紀錄你想要的資訊,再回傳到主機,透過你提供的資料,回傳正確的資訊。

你會問說,那他若不知道我的地點,是否就無法給出天氣預報?這是理所當然的,無論你是用定位的功能,還是手動輸入的方式,你都要給出一個地點的條件。當然,若你的 APP 裡面有內選許多國家或地區的話,你也可以選完之後再查詢,但你有看到重點嗎?你一定得挑選一個地點或地區呀!

以上這個行為你可以簡稱「 查詢天氣的 API 」

在天氣變化多變的台灣,特別是北部的朋友們,是否都會查詢天氣來決定今天要不要帶傘、或穿什麼呢?

線上付款的流程

6-2

若你有在線上購物過,一定有體驗過線上結帳的流程。

其實就不外乎就是輸入個人資料、運送資料、結帳方式(信用卡或貨到付款等),結帳完成等商品寄到你家或到超商取貨呢?

如果我們來剖解這個流程的話,你可以想像:

輸入個人資料與運送資料,是為了讓系統能紀錄商品要寄到哪裡去。

能夠線上付款的話,中間的串接會有第三方的金流廠商、或者銀行提供的付款閘道,將你所輸入的資料送出後,去銀行那邊驗證你的付款方式是否成功或失敗,再回到網站呈現付款的狀態。

我們可以稱這個為「 付款 API 」「 訂單狀態 API 」等等的。

你是否也無法聯想到原來每天在使用的都會用到這些 API 呢?

在數位 2.0 的環境下,我們多了非常多便利的支付方式,而且讓我們購物下單也方便許多,假設少了這些串接,是否反而不習慣呢?

總結

API 其實就發生在我們每天生活的情境,無論你是要用手機:查詢資料、訂餐、付款、玩遊戲、逛社群媒體,這些背後其實都有一大串的 API 程式碼無形中,透過網路連到各自的主機伺服器上做資料互傳的動作。

雖然我們看不到這些東西,但你一定感受得到原來這些程式背後的資料傳輸,都是用 API 達成的喔!

你可能也會喜歡

Share this on

Subscribe to
Learning Hub

掌握趨勢、深度學習,獲得數位產業最佳的執行觀念,使用內容行銷捕捉廣大的網路受眾,一起學習成長 !