從拉麵店的販賣機理解什麼是 API

仔細地研究一下販賣機

販賣餐券的販賣機,只可惜不是賣拉麵

固定品項

販賣機的品項是固定的,上面沒有的你點不到。沒有一個地方可以讓你輸入客製化資訊,所以如果沒有「不要薑」的按鈕,你的餐券上面就不會有這項資訊,你就點不到沒有薑的拉麵(這邊先不考慮直接跟店員說)。

減少溝通障礙

你溝通的對象從店員變成了機器,壞處就像上面說的一樣,客製化程度有限,而好處就是沒有溝通問題。你不會講日文也沒關係,反正按鈕上有寫英文或中文,就算沒有也會有圖片,你按按鈕就可以點餐了,完全沒有語言障礙。

節省人力

最直接能想到的一點就是節省人力,你只要買一台機器放在那邊,就解決了點餐跟買單這兩項作業,不用再放一個人到收銀台那邊,節省了一些人力成本。

固定點餐選項,節省客製化所需成本

因為改用了餐券販賣機,上面的選項都是你已經定好的,所以你不想提供的東西可以不放。

民宿主人阿民的故事

阿民家裡經營著民宿的生意,為了讓大家更有畫面感,這是房間的長相:

還真是豪華的民宿呢

到…到底什麼是 API?

白話講解 API

無論是明示或暗示,相信你在上面兩個故事都有注意到一些我特別強調的地方。我發現如果要從正面來講 API 會非常難講,於是我決定先從側面切入。

GitHub API 回傳的資訊
注意左下角那塊就好,都是我們剛剛拿到的資訊

連結販賣機與民宿網站的例子

仔細想想,會發現餐券販賣機也是同樣的。

API 與 Web API

前面提到當雙方交流的時候就必須透過 API,我覺得這算是很廣義的定義了。今天當我在寫程式時,我如果需要存取檔案,我就必須透過作業系統提供的 API,才能存取到檔案。如果今天作業系統沒有給我這個 API,那我就存取不到。

略過技術細節的 API 串接實戰

接著我們來簡單實戰一下如何串接 API,不過我們不會講到技術細節,只會講到大概要做什麼。如果想學會怎麼串接 Web API,你必須先知道什麼是 HTTP 以及它在做什麼,接著才是看 API 文件。在此篇文章中不打算講這些,所以會簡單帶過。

圖片來源:https://developer.spotify.com/documentation/web-api/
https://developer.spotify.com/documentation/web-api/reference/browse/
https://developer.spotify.com/documentation/web-api/reference/browse/get-list-new-releases/

總結

API 是什麼?就是日本拉麵店賣餐券的販賣機(會一直強調拉麵店只是因為我第一次看到它是在拉麵店)。

我要串接 API 來取得房間資訊

=> 我要看販賣機來確定拉麵賣完沒

訂房網站必須透過 API 來我的網站下訂單

=> 顧客必須透過販賣機來我的餐廳點餐

API 只給我 email 跟姓名,地址拿不到

=> 販賣機只讓我點拉麵,沒辦法不要蔥花

API 壞了,怎麼文件上寫回傳使用者資訊,卻傳成訂單資訊?

=> 販賣機壞了,怎麼按鈕上面寫醬油拉麵,餐券卻寫燒肉飯?

--

--

重度拖延症患者,興趣是光想不做,有很多想做的事,卻一件都沒有執行。無聊的時候喜歡寫文章,發現自己好像有把事情講得比其他人清楚的能力。相信分享與交流可以讓世界更美好。Medium 文章列表請參考:https://aszx87410.github.io/blog/medium

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Huli

Huli

11.3K Followers

重度拖延症患者,興趣是光想不做,有很多想做的事,卻一件都沒有執行。無聊的時候喜歡寫文章,發現自己好像有把事情講得比其他人清楚的能力。相信分享與交流可以讓世界更美好。Medium 文章列表請參考:https://aszx87410.github.io/blog/medium