什麼是 API
API 定義 ( Wiki )
應用程式介面(英語:Application Programming Interface,簡稱:
API),又稱為應用編程介面,就是軟體系統不同組成部分銜接的
約定。由於近年來軟體的規模日益龐大,常常需要把複雜的系統
劃分成小的組成部分,編程介面的設計十分重要。程式設計的實
踐中,編程介面的設計首先要使軟體系統的職責得到合理劃分。
良好的介面設計可以降低系統各部分的相互依賴,提高組成單元
的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性
和擴充功能性。
說中文好嗎?
假設我們有一家銀行
銀行里有一個很大的很堅固
的保險庫,還有一個記錄人
們有多少錢的賬本。所有人
都可以來這個銀行存款跟提
款。
存款流程
1. 拿錢去銀行
2. 打開保險庫,把錢放進去
3. 在帳本上寫著我是誰,我存了多少錢
4. 離開銀行
缺點
◉ 所有人都必須知道存款的流程
◉ 所有人都必須要有能力完成流程中的每一件事
EX: 所有人都必須要會寫帳本
◉ 完全相信使用者,如果有人寫帳本卻沒把錢放進去也查不到
◉ 假如現在改成使用電腦記帳,所有人都必須重新學習流程
解決方法
招募一個銀行櫃員(小敏)。
所有人要存款或提款都必需
透過小敏。由小敏來執行後
續的所有流程。
存款流程 (新版)
1. 拿錢去銀行
2. 告訴櫃員,我是誰,希望存多少錢到我的賬戶
3. 小敏拿著錢,放進了保險庫
4. 小敏在賬本上記錄下交易
5. 小敏回到櫃檯,告訴客人錢存進去了,你可以走了
6. 客人離開銀行
優點
◉ 現在只需要小敏知道所有的流程,顧客透過小敏就可以存款
◉ 小敏有能力完成所有存款流程
EX: 小敏會寫帳本
◉ 小敏可以確認顧客真的有將存款的金錢交給她
◉ 如果現在改成用電腦來記帳,也只需要小敏來學習新的流程,
對顧客來說,沒有任何差異
結論
● 小敏很辛苦
● 小敏就是 API,是一個對外提供的服務窗口
● 透過 API 可以降低使用難度,顧客只需要知道怎麼呼叫 API ,
不需要知道後續流程是怎麼做的
● API 可以隔離顧客與實際操作流程,就算未來操作流程有修改,
對客戶來說也沒有任何影響
API 設計注意事項
假設小敏只會說中文,這時如果
有人來存款時說日文,小敏就會
聽不懂顧客說什麼。所以我們必
須立下公告說,在銀行存款只能
說中文。這樣雙方的溝通才不會
有問題。
而在 API 中常用的格式就是
JSON 跟 XML。
統一格式
身份驗證
◉ 如果我們要提款的話,這時候我們就必須要帶著我們開立帳
戶的印章,小敏會確認我們的印章跟開戶時的印章是否相同。
如果不同,她就會拒絕我們的提款要求。
◉ 在 API 的呼叫中,權限的確認是很重要的,我們需要確認使
用者是否有權限呼叫這個 API 。
錯誤處理
假如今天有顧客的帳戶中只剩下
100元,但是卻來提款1000原,
這時候小敏就必須拒絕這次提款
的要求,並且通知顧客他的帳戶
餘額不足。
API 設計中除了正確的流程外,
也需要針對錯誤的部分回傳錯誤
訊息。
生活中的 API
FACEBOOK 登入
FACEBOOK 登入就是由
FACEBOOK 開放對外的 API,
當網站串接完成之後,就可以讓
使用者透過 FACEBOOK 的帳號
來登入網站。
Thank you

什麼是API