iT邦幫忙

0

Day 2.為什麼「運輸」需要 API?

  • 分享至 

  • xImage
  •  

前言
每天早上我在臺北等公車,手機上的不同 App 有時給出不同的到站時間。不是誰故意騙人,而是大家拿資料的方式不一樣、更新時間也不一致。把資料透過「同一個窗口」提供出去,就能解決這件事,不管是去哪裡問、要填什麼、多久更新一次,都有規則。這樣一來,不管是站牌、民間 App,大家都能用同一份最新資料,顯示起來也比較一致。對我這個通勤族來說,最大的好處是「可預期」,我知道資料多久更新一次、發生異常時會怎麼顯示;對提供資料的一方來說,也能限制查詢頻率,避免在尖峰時段被塞爆。簡單說,有了這個窗口,資訊更乾淨、更新更穩定,大家彼此好合作。
為什麼需要 API:把「問法」與「答案」標準化
交通資訊分成「固定」與「即時」兩大類。固定資料就像課表,描述有哪些路線、每條路線經過哪些站、站點在哪裡;即時資料像現場動態,告訴你目前車子約幾分鐘到、是否末班或暫停。要把這兩者順利結合,畫面上同時呈現「站名」與「幾分鐘到」,其中最核心的需求就是:大家用同一種問法提問、用同一種格式回覆。API 的角色,就是定義這套問答規則。
如果沒有 API,不同服務可能自己去抓網頁或手動整理資料。這會導致兩個問題:第一,來源不一,更新節奏不同,結果顯示不一致;第二,對方網站只要改版,擷取就容易失效,維護成本很高。API 讓提供方把規則寫清楚(去哪裡問、帶哪些欄位、多久更新、錯誤怎麼回),使用方就能照規則詢問,拿到格式一致、附帶時間標記的答案。當大家都遵守同一入口,各家呈現的資訊也才會對得上,不再互相矛盾。。
即時但要可靠:讓「新鮮度」看得見
我認為到站時間最重要的點在「夠新」。API 會把資料「何時算出的時間戳記」一起回給你,使用方就能在畫面上標註「資料更新於 x 分鐘前」。這件事看起來小,卻能降低誤解:同一台車,如果兩個畫面的更新時間不同,差異就有脈絡可解釋。沒有 API 的時候,常常只看到一個數字,卻不知道它多舊,體感就會很差。
尖峰也要撐得住:讓「使用規則」可被遵守
早上尖峰很多人同時查詢,如果毫無節制,後端很容易被打爆。API 允許提供方設定可接受的查詢頻率,超過就明確回覆「稍候再試」的訊息;使用方也能依這個訊息調整節奏,或改用本地暫存一小段時間。這種「雙方都知道規則並且遵守」的合作方式,能讓整體服務更穩定。
和本專題的關聯:兩條主線接得起來
我們選的兩條主線是「站點/路線(固定)」與「到站時間(即時)」。API 會為這兩類資料提供一致的識別方式,讓它們對得起來;之後不論做「到站倒數」或「附近站點」,都能在同一畫面上同時呈現「人看得懂的站名」與「現在還要等多久」。這是之後做自動化、做簡單儀表板的基礎。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言