SlideShare a Scribd company logo
Hack & Go! 
蒸汽車頭和高速鐵路的競賽 
Ben Lue / COIMOTION
二個科技宅爸的對話 
IaaS, PaasS, SaaS 中間缺了好大一 
塊 
是啊,PaaS應該不是重點吧 
這麼重要的事怎麼沒有人做 
…這個坑很大啊
API is … 
API Portal 
firebase 
Real-Time Sync 
parse.com 
Cloud Storage
冷氣+ 皮椅+ 行車記錄器= 汽車? 
Coimpedia: 
汽車=用50 ~ 150km/hr 的速度,依 
我的意願到我想到的地方
API… 
不等於function call
格式要有一致性、可理解性、可程式性 
包裹式的功能,全有全無的執行結果 
提供開箱即用的功能 
完整的安全機制 
個體開發者懶得寫、不好寫、 
不能寫的功能
格式
RESTful 點出了問題的所在 
但它不是最終的解答
GET 
PUT 
POST 
DELETE 
+ /resource/id
+ /resource/id 
? ? ?
var request = require('request'); 
var options = { 
url: 'https://foo.com/myPage/4' 
}; 
request(options, 
function(err, response, body) { 
... 
}); 
修改、刪除、查詢?
無法從URL 中看出究竟是查詢、 
修改甚至是刪除 
對程式開發而言是一件危險的事
我們對一個物件的動作不是只有 
CRUD 四件事 
這是RESTful 的盲點 
Search? 
Tag? 
Reply?
Semantic Endpoint Format (SEF) 
iRESTful: improved RESTful 
HTTP_method /resource/id 
/reposiroty/rs/op/id 
符合一致性、可理解性
Repository? Resource? Op? 
Package Class Method
可設定性 
(Configurable)
Pagination (_ps, _pn) 
Include/exclude return fields
可程式性 
(Programmable)
GET /myLib/books/search 
{ 
key: ‘樂活’, 
forEach: { 
url: '/myLib/favi/hasBook', 
param: { 
bkID: $item.bkID 
} 
} 
}
包裹性
Multiple functions in a single call 
Work like a transaction 
Options to prevent APIs from bloated
API 過度膨脹: 
/page/list 
/page/listPriv 
/page/listPub 
/page/listEn 
/page/listZh 
/page/listAllLoc 
以options 維持精簡: 
/page/list?getAll=&pri=
開箱即用
User Management 
Content Management (CMS) 
Social Website Support (FB, Google+) 
Search 
Security Measures
There are …. 
interesting things.. 
coming from …
There are …. 
interesting things.. 
coming from … 旅遊 
墾丁 
美食 
…
Hack & Go!  Redefining API @ MOPCON 2014
旅遊 
墾丁 
美食
There are …. 
interesting things.. 
coming from … 
旅遊 
墾丁 
美食 
+ 旅遊 
墾丁 
美食 
…
• page/addLoc/[pageID] 
• page/locInfo/[pageID] 
• page/removeLoc/[pageID] 
• page/tagLoc/[pageID] 
單一資源的API 過度膨脹
• page/create 
• page/view/[pageID] 
• geoLoc/add 
• geoLoc/info/[geoID] 
• page.geoLoc/add/[pageID] 
• page.geoLoc/info/[pageID.geoID] 
• geoLoc.page/create/[geoID] 
• geoLoc.page/view/[geoID.pageID]
• page.geoLoc/search?lat=&lng= 
• geoLoc.page/search?key=美食
模組
讓開發者不需寫任何程式 
立即可用的後台功能
COIMOTION 模組 
核心功能 
網頁管理 
民宿管理 
活動管理 
虛擬商店圖書管理
內容集 
路跑賽事400+ 全國路跑活動 
墾丁民宿1000+ 民宿的詳細資料 
藝文活動11000+ 全國藝文活動資訊
內容集 
便利商店8000 全台便利商店的詳細資料 
鐵路時刻 
1200+ 台鐵班次, 
4,800,000+ 班車時刻 
圖書資料150,000+ 本書籍資料和介紹
coServ
Showcase
Hack & Go!  Redefining API @ MOPCON 2014
Hack & Go!  Redefining API @ MOPCON 2014
Hack & Go!  Redefining API @ MOPCON 2014
Hack & Go!  Redefining API @ MOPCON 2014
COIMOTION Link Up With EzoApp
Try this 
ready-to-use 
template
http://tw.coimotion.com 
http://www.coservjs.org 
http://facebook.com/coimotion

More Related Content

PPT
Annamalai bday ppt
DOCX
1. vektor dan skalar
PPTX
Luc labelle sps ottawa
PPTX
microwaves by peer aakif
PDF
A PROJECT REPORT ON “ALKYL ARYL SULFONATE”
PPTX
Grant Readiness: Beyond Wanting Grant Revenue
PDF
Top10 Trends 2015 - GelecekHane
PPTX
Unleash the real value of your corporate data with power bi luc labelle
Annamalai bday ppt
1. vektor dan skalar
Luc labelle sps ottawa
microwaves by peer aakif
A PROJECT REPORT ON “ALKYL ARYL SULFONATE”
Grant Readiness: Beyond Wanting Grant Revenue
Top10 Trends 2015 - GelecekHane
Unleash the real value of your corporate data with power bi luc labelle

Viewers also liked (10)

DOC
Lịch học
PPTX
Capitulo 7
PPTX
GelecekHane Ticaret 2.0 -Akan Abdula - Davranış Enstitüsü
PPTX
PDF
ITFT- Varanasi
PPTX
10 tips To Boost Your Search Visibility in 2017
DOCX
New เอกสาร microsoft word
PPTX
Communication Barriers
PDF
Femi 2015 cv
PPTX
Juan sgarbi power point
Lịch học
Capitulo 7
GelecekHane Ticaret 2.0 -Akan Abdula - Davranış Enstitüsü
ITFT- Varanasi
10 tips To Boost Your Search Visibility in 2017
New เอกสาร microsoft word
Communication Barriers
Femi 2015 cv
Juan sgarbi power point

Similar to Hack & Go! Redefining API @ MOPCON 2014 (20)

PPT
Using google appengine_1027
PPT
Using google appengine (2)
PPT
introduction of web 2.0
PPT
前端杂谈
PPT
Using google appengine_final
PDF
KSDG BaaS Intro
PPT
20110821 Web Development on Cloud Platform - PIXNET
PPTX
那些年,我們一起Open的data
PDF
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
PDF
IDF2013大会分享——《使用新浪移动云开发全平台应用》
PDF
Web development overview
PPTX
构建网络工具箱
PPTX
LINE Messaging API with LinkIt 7697
PDF
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
PPT
使用GoogleAppEngine建立个人信息中心
PPT
Open Api&Sip
PDF
楽しく学ぶ?API
PDF
Big Data Projet Management the Body of Knowledge (BDPMBOK)
ODP
Open Source Inside JiWai
PPT
腾讯大讲堂58 拍拍app platform中间件解决方案简介
Using google appengine_1027
Using google appengine (2)
introduction of web 2.0
前端杂谈
Using google appengine_final
KSDG BaaS Intro
20110821 Web Development on Cloud Platform - PIXNET
那些年,我們一起Open的data
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
IDF2013大会分享——《使用新浪移动云开发全平台应用》
Web development overview
构建网络工具箱
LINE Messaging API with LinkIt 7697
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
使用GoogleAppEngine建立个人信息中心
Open Api&Sip
楽しく学ぶ?API
Big Data Projet Management the Body of Knowledge (BDPMBOK)
Open Source Inside JiWai
腾讯大讲堂58 拍拍app platform中间件解决方案简介

More from Ben Lue (10)

PPTX
Introducing coServ
PPTX
Programming can be like circuits drawing -- a JSON-FP perspective
PPTX
What is JSON-FP
PDF
學好 node.js 不可不知的事
PDF
不一樣的 Web Server coServ Part II
PDF
HTML+COIMOTION 開發跨平台 app
PDF
不一樣的Web server... coServ
PDF
以HTML5和COIMOTION打造跨平台App
PDF
第一次使用COIMOTION就上手
PDF
COIMOTION概念介紹
Introducing coServ
Programming can be like circuits drawing -- a JSON-FP perspective
What is JSON-FP
學好 node.js 不可不知的事
不一樣的 Web Server coServ Part II
HTML+COIMOTION 開發跨平台 app
不一樣的Web server... coServ
以HTML5和COIMOTION打造跨平台App
第一次使用COIMOTION就上手
COIMOTION概念介紹

Hack & Go! Redefining API @ MOPCON 2014

Editor's Notes

  • #15: 到此十分鐘
  • #27: 到此二十分鐘
  • #39: 到此三十分鐘