工程師整天掛在嘴邊的API是什麼?

單細胞
3 min readJun 24, 2019

--

API( Application Programming Interface),中文翻做"應用程式介面"。

又是一個典型的有翻譯跟沒翻譯一樣的例子,誰看了應用程式介面會說”喔~原來是應用程式介面阿…” ? 根本沒解釋到意思吧!

所以到底什麼是API?

生活實例

如果要用生活中常見的例子來舉例,API就像是你平常去速食店點餐時的櫃檯人員。當你跟櫃台人員說"我需要一份大亨堡"的時候,櫃台人員就會通知後面廚師去準備一份大亨堡,等廚師做完大亨堡之後,再由櫃檯人員轉交給你。

所以櫃台人員的工作,就是接收你的需求,將它轉達給後面做事的人,等完成後再將結果轉交給你。

那櫃台人員做的事情就只有"轉達"這件事情嗎? 當然不是囉! 身為一個專業的櫃台人員,他要負責的還有"檢核"這項工作,如果你今天跑去炸雞店跟櫃台說我要鍋貼,難道他也要老老實實的跟廚師說? 會被廚師揍吧!?

所以身為一個良好的櫃檯人員,除了能轉達你的需求外,能正確的回覆你為什麼不能買(錯誤訊息)也是相當重要的一環。

回歸程式面

讓我們回到程式面,當A程式需要另一個B程式幫他做某件事或拿某些資料的時候,這中間就會透過API(我們稱C)來幫忙溝通。這時A並不需要知道B做了什麼,怎麼做的。他只需要知道三件事:

  1. 向C要求做這件事之前需要提供什麼資料?
  2. 成功的話C會回復給我什麼?
  3. 失敗的話C會回復給我什麼?

上述三點也就是我們說的API的規格,至於這些規格要從哪邊取得呢? 通常都是跟開發API的工程端拿,或是大一點的網站,如Facebook、google,或是政府機關網站都會有對應的API規格文件可以參考。

實際呼叫API

那我們來實際玩一個API看看。一樣我們舉個例子,假設我們今天要搜尋台灣物種名稱中包含"鯨"字的物種,我們就可以使用政府提供的openAPI來查詢。

規格網站: https://www.tbn.org.tw/data/api/openapi

按照規格上面的描述,我們打了這個網址: https://www.tbn.org.tw/api/v1/species/match?name=鯨

透過這隻API,我們得到了以下的結果:

搜尋台灣物種名中包含"鯨"的資料

從上面的結果就可以知道,我們總共拿到了包含中喙鯨屬、仿鯨、仿鯨魚科 ...阿餔拉餔拉一共73筆的資料,拿到這些資料後看是要轉成報表呈現,還是搜尋對應的英文學名,就看自己的程式用途囉。

總結

  • API就像是櫃檯人員,擔任兩個程式之間的溝通橋樑。
  • 除了回復正確資料外,當碰到例外狀況,API也會針對輸入資料檢核,並在碰到問題時回應錯誤訊息。

其他可用API

這邊再提供兩個可用的API或API平台,大家可以自己玩看看。

以上就是菜鳥工程師的一些心得整理,有什麼想法也麻煩留個言囉!

--

--

單細胞

菜鳥工程師,想把一些對寫程式的人來說簡單,對外人來說不簡單的概念用簡單的例子寫出來。順便幫自己來點程式小筆記。