Top Banner
Hack & Go! 蒸蒸蒸蒸蒸蒸蒸蒸蒸蒸蒸蒸 Ben Lue / COIMOTION
46

Hack & Go! Redefining API @ MOPCON 2014

Nov 28, 2014

Download

Software

Ben Lue

目前已知的 API 服務都還只在摸索的階段。這個簡報解釋了 API 服務為何會徹底改變網路應用開發的模式,並說明了一個好的 API 應有的特色。簡報中也說明了 COIMOTION 對開發者提供了非常有用的功能,並介紹使用 COIMOTION 的成功範例。
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hack & Go!  Redefining API @ MOPCON 2014

Hack & Go!

蒸汽車頭和高速鐵路的競賽

Ben Lue / COIMOTION

Page 2: Hack & Go!  Redefining API @ MOPCON 2014

二個科技宅爸的對話

IaaS, PaasS, SaaS 中間缺了好大一塊

這麼重要的事怎麼沒有人做

是啊, PaaS 應該不是重點吧

… 這個坑很大啊

Page 3: Hack & Go!  Redefining API @ MOPCON 2014

API is …

API Portal

Real-Time Sync

firebase

Cloud Storage

parse.com

Page 4: Hack & Go!  Redefining API @ MOPCON 2014

冷氣 + 皮椅 + 行車記錄器 = 汽車?

Coimpedia:汽車 =用 50 ~ 150km/hr 的速度,依

我的意願到我想到的地方

Page 5: Hack & Go!  Redefining API @ MOPCON 2014

API…不等於 function call

Page 6: Hack & Go!  Redefining API @ MOPCON 2014

格式要有一致性、可理解性、可程式性

包裹式的功能,全有全無的執行結果

提供開箱即用的功能

完整的安全機制

個體開發者懶得寫、不好寫、不能寫的功能

Page 7: Hack & Go!  Redefining API @ MOPCON 2014

格式

Page 8: Hack & Go!  Redefining API @ MOPCON 2014

RESTful 點出了問題的所在

但它不是最終的解答

Page 9: Hack & Go!  Redefining API @ MOPCON 2014

GETPUTPOSTDELETE

+ /resource/id

Page 10: Hack & Go!  Redefining API @ MOPCON 2014

? ? ?

+ /resource/id

Page 11: Hack & Go!  Redefining API @ MOPCON 2014

var request = require('request');

var options = { url: 'https://foo.com/myPage/4'};

request(options, function(err, response, body) {

...});

修改、刪除、查詢?

Page 12: Hack & Go!  Redefining API @ MOPCON 2014

無法從 URL 中看出究竟是查詢、修改甚至是刪除

對程式開發而言是一件危險的事

Page 13: Hack & Go!  Redefining API @ MOPCON 2014

我們對一個物件的動作不是只有CRUD 四件事

這是 RESTful 的盲點

Search?Tag?

Reply?

Page 14: Hack & Go!  Redefining API @ MOPCON 2014

/reposiroty/rs/op/id

符合一致性、可理解性

iRESTful: improved RESTful

HTTP_method /resource/id

Semantic Endpoint Format (SEF)

Page 15: Hack & Go!  Redefining API @ MOPCON 2014

Package Class Method

Repository? Resource? Op?

Page 16: Hack & Go!  Redefining API @ MOPCON 2014

可設定性(Configurable)

Page 17: Hack & Go!  Redefining API @ MOPCON 2014

Pagination (_ps, _pn)

Include/exclude return fields

Page 18: Hack & Go!  Redefining API @ MOPCON 2014

可程式性(Programmable)

Page 19: Hack & Go!  Redefining API @ MOPCON 2014

GET /myLib/books/search{ key: ‘ 樂活’ , forEach: {

url: '/myLib/favi/hasBook',param: {

bkID: $item.bkID}

}}

Page 20: Hack & Go!  Redefining API @ MOPCON 2014

包裹性

Page 21: Hack & Go!  Redefining API @ MOPCON 2014

Multiple functions in a single call

Work like a transaction

Options to prevent APIs from bloated

Page 22: Hack & Go!  Redefining API @ MOPCON 2014

/page/list

/page/list?getAll=&pri=

/page/listPriv

/page/listPub

/page/listEn

/page/listZh

/page/listAllLoc

API 過度膨脹:

以 options 維持精簡:

Page 23: Hack & Go!  Redefining API @ MOPCON 2014

開箱即用

Page 24: Hack & Go!  Redefining API @ MOPCON 2014

User Management

Content Management (CMS)

Social Website Support (FB, Google+)

Search

Security Measures

Page 25: Hack & Go!  Redefining API @ MOPCON 2014

There are ….

interesting things..

coming from …

Page 26: Hack & Go!  Redefining API @ MOPCON 2014

There are ….

interesting things..

coming from … 旅遊

墾丁

美食

Page 27: Hack & Go!  Redefining API @ MOPCON 2014
Page 28: Hack & Go!  Redefining API @ MOPCON 2014

旅遊

墾丁

美食

Page 29: Hack & Go!  Redefining API @ MOPCON 2014

There are ….

interesting things..

coming from …

旅遊

墾丁

美食+

旅遊

墾丁

美食

Page 30: Hack & Go!  Redefining API @ MOPCON 2014

• page/addLoc/[pageID]

• page/locInfo/[pageID]

• page/removeLoc/[pageID]

• page/tagLoc/[pageID]

單一資源的 API 過度膨脹

Page 31: Hack & Go!  Redefining API @ MOPCON 2014

• 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 32: Hack & Go!  Redefining API @ MOPCON 2014

• page.geoLoc/search?lat=&lng=

• geoLoc.page/search?key= 美食

Page 33: Hack & Go!  Redefining API @ MOPCON 2014

模組

Page 34: Hack & Go!  Redefining API @ MOPCON 2014

讓開發者不需寫任何程式立即可用的後台功能

Page 35: Hack & Go!  Redefining API @ MOPCON 2014

COIMOTION 模組

核心功能

網頁管理

民宿管理

活動管理

虛擬商店 圖書管理

Page 36: Hack & Go!  Redefining API @ MOPCON 2014

內容集

墾丁民宿 1000+ 民宿的詳細資料

路跑賽事 400+ 全國路跑活動

藝文活動 11000+ 全國藝文活動資訊

Page 37: Hack & Go!  Redefining API @ MOPCON 2014

內容集

便利商店 8000 全台便利商店的詳細資料

鐵路時刻1200+ 台鐵班次, 4,800,000+ 班車時刻

圖書資料 150,000+ 本書籍資料和介紹

Page 38: Hack & Go!  Redefining API @ MOPCON 2014

coServ

Page 39: Hack & Go!  Redefining API @ MOPCON 2014

Showcase

Page 40: Hack & Go!  Redefining API @ MOPCON 2014
Page 41: Hack & Go!  Redefining API @ MOPCON 2014
Page 42: Hack & Go!  Redefining API @ MOPCON 2014
Page 43: Hack & Go!  Redefining API @ MOPCON 2014
Page 44: Hack & Go!  Redefining API @ MOPCON 2014

COIMOTION Link Up With EzoApp

Page 45: Hack & Go!  Redefining API @ MOPCON 2014

Try this ready-to-use template

Page 46: Hack & Go!  Redefining API @ MOPCON 2014

http://tw.coimotion.com

http://www.coservjs.org

http://facebook.com/coimotion