SlideShare une entreprise Scribd logo
1  sur  46
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 … 旅遊 
墾丁 
美食 
…
旅遊 
墾丁 
美食
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
COIMOTION Link Up With EzoApp
Try this 
ready-to-use 
template
http://tw.coimotion.com 
http://www.coservjs.org 
http://facebook.com/coimotion

Contenu connexe

En vedette

Unleash the real value of your corporate data with power bi luc labelle
Unleash the real value of your corporate data with power bi   luc labelleUnleash the real value of your corporate data with power bi   luc labelle
Unleash the real value of your corporate data with power bi luc labelleLuc Labelle
 
Lịch học
Lịch họcLịch học
Lịch họcNon Mầm
 
GelecekHane Ticaret 2.0 -Akan Abdula - Davranış Enstitüsü
GelecekHane Ticaret 2.0 -Akan Abdula - Davranış EnstitüsüGelecekHane Ticaret 2.0 -Akan Abdula - Davranış Enstitüsü
GelecekHane Ticaret 2.0 -Akan Abdula - Davranış EnstitüsüGelecek Hane
 
ITFT- Varanasi
 ITFT- Varanasi ITFT- Varanasi
ITFT- VaranasiAnuj Tomar
 
10 tips To Boost Your Search Visibility in 2017
10 tips To Boost Your Search Visibility in 201710 tips To Boost Your Search Visibility in 2017
10 tips To Boost Your Search Visibility in 2017NetscapeIndia
 
Communication Barriers
Communication Barriers Communication Barriers
Communication Barriers Juhi_Misra
 
Juan sgarbi power point
Juan sgarbi power pointJuan sgarbi power point
Juan sgarbi power pointjuan123asd
 

En vedette (11)

Unleash the real value of your corporate data with power bi luc labelle
Unleash the real value of your corporate data with power bi   luc labelleUnleash the real value of your corporate data with power bi   luc labelle
Unleash the real value of your corporate data with power bi luc labelle
 
Lịch học
Lịch họcLịch học
Lịch học
 
Capitulo 7
Capitulo 7Capitulo 7
Capitulo 7
 
GelecekHane Ticaret 2.0 -Akan Abdula - Davranış Enstitüsü
GelecekHane Ticaret 2.0 -Akan Abdula - Davranış EnstitüsüGelecekHane Ticaret 2.0 -Akan Abdula - Davranış Enstitüsü
GelecekHane Ticaret 2.0 -Akan Abdula - Davranış Enstitüsü
 
P01
P01P01
P01
 
ITFT- Varanasi
 ITFT- Varanasi ITFT- Varanasi
ITFT- Varanasi
 
10 tips To Boost Your Search Visibility in 2017
10 tips To Boost Your Search Visibility in 201710 tips To Boost Your Search Visibility in 2017
10 tips To Boost Your Search Visibility in 2017
 
New เอกสาร microsoft word
New เอกสาร microsoft wordNew เอกสาร microsoft word
New เอกสาร microsoft word
 
Communication Barriers
Communication Barriers Communication Barriers
Communication Barriers
 
Femi 2015 cv
Femi  2015 cvFemi  2015 cv
Femi 2015 cv
 
Juan sgarbi power point
Juan sgarbi power pointJuan sgarbi power point
Juan sgarbi power point
 

Similaire à Hack & Go! Redefining API @ MOPCON 2014

Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027Wei Sun
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)Wei Sun
 
introduction of web 2.0
introduction of web 2.0introduction of web 2.0
introduction of web 2.0soboring
 
前端杂谈
前端杂谈前端杂谈
前端杂谈salinet
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_finalWei Sun
 
KSDG BaaS Intro
KSDG BaaS IntroKSDG BaaS Intro
KSDG BaaS Introericpi Bi
 
20110821 Web Development on Cloud Platform - PIXNET
20110821 Web Development on Cloud Platform - PIXNET20110821 Web Development on Cloud Platform - PIXNET
20110821 Web Development on Cloud Platform - PIXNETJui-Nan Lin
 
那些年,我們一起Open的data
那些年,我們一起Open的data那些年,我們一起Open的data
那些年,我們一起Open的dataKevingo Tsai
 
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 TaiwanAlan Tsai
 
IDF2013大会分享——《使用新浪移动云开发全平台应用》
IDF2013大会分享——《使用新浪移动云开发全平台应用》IDF2013大会分享——《使用新浪移动云开发全平台应用》
IDF2013大会分享——《使用新浪移动云开发全平台应用》easychen
 
Web development overview
Web development overviewWeb development overview
Web development overviewWei Sun
 
构建网络工具箱
构建网络工具箱构建网络工具箱
构建网络工具箱Lv Jian
 
LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697 LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697 CAVEDU Education
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型Jackson Tian
 
使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心Du Yamin
 
Open Api&Sip
Open Api&SipOpen Api&Sip
Open Api&Sipcenwenchu
 
楽しく学ぶ?API
楽しく学ぶ?API楽しく学ぶ?API
楽しく学ぶ?APItreby
 
Big Data Projet Management the Body of Knowledge (BDPMBOK)
Big Data Projet Management the Body of Knowledge (BDPMBOK)Big Data Projet Management the Body of Knowledge (BDPMBOK)
Big Data Projet Management the Body of Knowledge (BDPMBOK)Jazz Yao-Tsung Wang
 
Open Source Inside JiWai
Open Source Inside JiWaiOpen Source Inside JiWai
Open Source Inside JiWaiLI Zhuohuan
 
腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介areyouok
 

Similaire à Hack & Go! Redefining API @ MOPCON 2014 (20)

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

Plus de Ben Lue

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

Plus de Ben Lue (10)

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

Hack & Go! Redefining API @ MOPCON 2014

Notes de l'éditeur

  1. 到此十分鐘
  2. 到此二十分鐘
  3. 到此三十分鐘