SlideShare a Scribd company logo
1 of 18
什麼是 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

More Related Content

Similar to 什麼是API

Solution apc 4.0
Solution apc 4.0Solution apc 4.0
Solution apc 4.0ahnlabchina
 
教學投影片01_Vb2005
教學投影片01_Vb2005教學投影片01_Vb2005
教學投影片01_Vb2005洋夫 葉
 
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作liangxiao0315
 
移动产品设计流程 @吴达鲲
移动产品设计流程 @吴达鲲移动产品设计流程 @吴达鲲
移动产品设计流程 @吴达鲲Darek Wu
 
從零開始做架構圖
從零開始做架構圖從零開始做架構圖
從零開始做架構圖Philip Zheng
 
歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列Chris Wang
 
Great architect cn
Great architect cnGreat architect cn
Great architect cndrewz lin
 
客服系統的軟體架設計分享
客服系統的軟體架設計分享客服系統的軟體架設計分享
客服系統的軟體架設計分享Johnson Gau
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)vanadies10
 
陈敏简历Java软件工程师
陈敏简历Java软件工程师陈敏简历Java软件工程师
陈敏简历Java软件工程师guestb12ca4
 
移动互联网的机遇与挑战
移动互联网的机遇与挑战移动互联网的机遇与挑战
移动互联网的机遇与挑战Courtney Chow
 
Azure Functions
Azure FunctionsAzure Functions
Azure FunctionsDino Wang
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
雲端行動商務發展趨勢 V1.2
雲端行動商務發展趨勢 V1.2雲端行動商務發展趨勢 V1.2
雲端行動商務發展趨勢 V1.2yaohung
 

Similar to 什麼是API (20)

Solution apc 4.0
Solution apc 4.0Solution apc 4.0
Solution apc 4.0
 
軟體安全防護大作戰
軟體安全防護大作戰軟體安全防護大作戰
軟體安全防護大作戰
 
教學投影片01_Vb2005
教學投影片01_Vb2005教學投影片01_Vb2005
教學投影片01_Vb2005
 
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作
 
移动产品设计流程 @吴达鲲
移动产品设计流程 @吴达鲲移动产品设计流程 @吴达鲲
移动产品设计流程 @吴达鲲
 
從零開始做架構圖
從零開始做架構圖從零開始做架構圖
從零開始做架構圖
 
歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列
 
Great architect cn
Great architect cnGreat architect cn
Great architect cn
 
客服系統的軟體架設計分享
客服系統的軟體架設計分享客服系統的軟體架設計分享
客服系統的軟體架設計分享
 
程式設計概論
程式設計概論程式設計概論
程式設計概論
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)
 
陈敏简历Java软件工程师
陈敏简历Java软件工程师陈敏简历Java软件工程师
陈敏简历Java软件工程师
 
移动互联网的机遇与挑战
移动互联网的机遇与挑战移动互联网的机遇与挑战
移动互联网的机遇与挑战
 
Bluemix API Connect
Bluemix API ConnectBluemix API Connect
Bluemix API Connect
 
Bluemix Api Connect
Bluemix Api ConnectBluemix Api Connect
Bluemix Api Connect
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
雲端行動商務發展趨勢 V1.2
雲端行動商務發展趨勢 V1.2雲端行動商務發展趨勢 V1.2
雲端行動商務發展趨勢 V1.2
 

More from Cloud Wu

我要成為正規表達式大師
我要成為正規表達式大師我要成為正規表達式大師
我要成為正規表達式大師Cloud Wu
 
羅輯思維: 迷茫時代的明白人
羅輯思維: 迷茫時代的明白人羅輯思維: 迷茫時代的明白人
羅輯思維: 迷茫時代的明白人Cloud Wu
 
大話設計模式讀書心得與總結
大話設計模式讀書心得與總結大話設計模式讀書心得與總結
大話設計模式讀書心得與總結Cloud Wu
 
Laravel 5.2 教學
Laravel 5.2 教學Laravel 5.2 教學
Laravel 5.2 教學Cloud Wu
 
Laravel mix
Laravel mixLaravel mix
Laravel mixCloud Wu
 

More from Cloud Wu (6)

我要成為正規表達式大師
我要成為正規表達式大師我要成為正規表達式大師
我要成為正規表達式大師
 
羅輯思維: 迷茫時代的明白人
羅輯思維: 迷茫時代的明白人羅輯思維: 迷茫時代的明白人
羅輯思維: 迷茫時代的明白人
 
Scrum
ScrumScrum
Scrum
 
大話設計模式讀書心得與總結
大話設計模式讀書心得與總結大話設計模式讀書心得與總結
大話設計模式讀書心得與總結
 
Laravel 5.2 教學
Laravel 5.2 教學Laravel 5.2 教學
Laravel 5.2 教學
 
Laravel mix
Laravel mixLaravel mix
Laravel mix
 

什麼是API