Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
月刊ライトニングトーク2014年8月号: MEAN 祭り資料
Search
pochi
August 29, 2014
Technology
4.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
月刊ライトニングトーク2014年8月号: MEAN 祭り資料
pochi
August 29, 2014
More Decks by pochi
See All by pochi
React Nativeで作ったアプリでRedux-Sagaを使ったので,その話 / TOM Internal Developer Session #7
pchw
0
2.2k
Expoで開発してアプリを公開して得られた知見 / RNM6
pchw
3
1.9k
Firebaseでラクラクリアルタイムアプリ
pchw
0
1.5k
MongoDB族のための組み込み軽量DB NeDB
pchw
0
1.5k
Synth - 東京Node学園2014
pchw
0
4.5k
RubyMotion 1.15で追加されたtest周りの話
pchw
1
3.3k
Other Decks in Technology
See All in Technology
素人でもできた!AIを使った短編小説創作入門
delhi09
PRO
0
120
Filter What the LLM Reads: RAG Governance with AgentCore Gateway
yakumo
1
110
DevelopersIO2026 -バックアップは“消されないこと”が9割-
yoshida0129
0
420
cdk deployとcdkd deploy、実際にデプロイして5倍速近くの差を実測した
yama3133
1
100
AI時代の開発はウォーターフォールに回帰する? / development-with-ai-back-to-wf
okamototakuyasr2
0
130
データマネジメント × 法務で作りあげる、 freeeの新しいデータガバナンスへの軌跡
freee
PRO
2
490
Obsidian Vault Architectures
x5gtrn
PRO
0
190
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
3
1.3k
Claude Code on Bedrock で統制をかける小ネタ集/claude-code-bedrock-governance-tips
emiki
1
13k
Devin プロモコードの受け取りと適用(2026.10.27)
kinopeee
1
630
スクラム祭り2026福井トラック_閉じたループから価値のスパイラルへ
kc_nakanishi
0
180
2026-10-24 JAWS JAWS-UG 茨城 #18 IAM Policy Autopilotってなにさ。terraform planからIAM Policyつくれるの? / What's IAM Policy Autopilot
masasuzu
0
180
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
550
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Balancing Empowerment & Direction
lara
6
1.3k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
940
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
860
Designing for Performance
lara
612
70k
The browser strikes back
jonoalderson
0
1.9k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
A Tale of Four Properties
chriscoyier
163
24k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
Un-Boring Meetings
codingconduct
0
470
Transcript
簡単おいしい Web APIのサクサク npm包み揚げ @pchw
https://otakumode.com/careers WANTS YOU
API?
RPC?
SOAP?
REST!
JSON!
JavaScript Object Notation
JavaScript?
None
MEAN祭り!
2min/10min
RESTful APIを 公開しておくと
Client Apps
None
Mashups
最近でいうと こんな企業も
None
None
4min/10min
How to use Web API?
None
Build npm module!
Publish npm module!
Presence!
None
Popular services
Fast
Useful
Good naming
Less bugs
6min/10min
簡単おいしい Web APIのサクサク npm包み揚げ
None
Endpoints
None
params
None
None
optional
None
Editor
superagent
yeoman generator-coffee-module
8min/10min
module.exports = class Uber Uber = require(‘uber’)
module.exports = class Uber! constructor: (@id,@pw)-> Uber = require ‘uber’!
uc = new Uber(‘ID’,’PASS’)! ちなみにUberはid/passの認証じゃないです
module.exports = class Uber! constructor: (@id,@pw)->! Products:->! unless @_products! @_products
= new Products(@id,@pw)! @_products Uber = require ‘uber’! uc = new Uber(‘ID’,’PASS’)! p = uc.Products()!
class Products! constructor: (@id,@pw)-> Uber = require ‘uber’! uc =
new Uber(‘ID’,’PASS’)! p = uc.Products()!
class Products! constructor: (@id,@pw)->! latitude:(@lat)->! longitude:(@long)-> p = uc.Products()! p!
.latitude(37.7860099)! .longitude(-122.4025387)
class Products! constructor:(@id,@pw)->! latitude:(@lat)->! longitude:(@long)->! end:(callback)-> p = uc.Products()! p!
.latitude(37.7860099)! .longitude(-122.4025387)! .end (json)->
end:(callback)->! r = require ‘superagent’! r.post(@API_URL)! .auth(@key, @pw)! .end (e,res)->
p = uc.Products()! p! .latitude(37.7860099)! .longitude(-122.4025387)! .end (json)->
Repeat each Endpoints
$ npm publish
こんなかんじで 作ったのが https://github.com/pchw/node-voicetext
Conclusion • 色んなWeb ServiceがRESTful API公開して る • npmモジュールを作って公開すると戦闘力が 上がる •
WEB APIのラッパーは楽に作れる • endpoint毎を塊にしてparamsをメソッドに すると見通しがいい
creative commons licensed (BY) flickr photo by Photonemotion: http://flickr.com/photos/photonemotion/ 9709101575
creative commons licensed (BY) flickr photo by Esparta: http://flickr.com/photos/esparta/1819946267 creative commons licensed (BY) flickr photo by takot: http://flickr.com/photos/takot/4804922749 creative commons licensed (BY) flickr photo by Didriks: http://flickr.com/photos/dinnerseries/6378990949 creative commons licensed (BY) flickr photo by phozographer: http://flickr.com/photos/phozographer/ 5430729956 creative commons licensed (BY) flickr photo by dominiqs: http://flickr.com/photos/dominiqs/331702231 creative commons licensed (BY) flickr photo by Yoshikazu TAKADA: http://flickr.com/photos/yoshikazut/ 14204212224 creative commons licensed (BY) flickr photo by Dmitry Baranovskiy: http://flickr.com/photos/dmitry-baranovskiy/ 2378867408 creative commons licensed (BY) flickr photo by MattsMacintosh: http://flickr.com/photos/ 48126477@N05/6300224891 creative commons licensed (BY) flickr photo by Daniel Dudek-Corrigan: http://flickr.com/photos/dansapples/ 14648967446 creative commons licensed (BY) flickr photo by Wonderlane: http://flickr.com/photos/wonderlane/3341694129 creative commons licensed (BY) flickr photo by soundman1024: http://flickr.com/photos/ soundman1024/2380346705 creative commons licensed (BY) flickr photo by rcbodden: http://flickr.com/photos/rcbodden/3905010862 creative commons licensed (BY) flickr photo by amalakar: http://flickr.com/photos/amalakar/8747066225 creative commons licensed (BY) flickr photo by sylvar: http://flickr.com/photos/sylvar/3175705552 creative commons licensed (BY) flickr photo by NatalieMaynor: http://flickr.com/photos/nataliemaynor/ 2988366432 creative commons licensed (BY) flickr photo by Sibe Kokke: http://flickr.com/photos/sibekokke/1117587017 creative commons licensed (BY) flickr photo by MiiiSH: http://flickr.com/photos/mishism/3138940743 creative commons licensed (BY) flickr photo by nyuhuhuu: http://flickr.com/photos/nyuhuhuu/4443886636 creative commons licensed (BY) flickr photo by missy & the universe: http://flickr.com/photos/missy-and-the-universe/ 3355237177 creative commons licensed (BY) flickr photo by SaminatorH: http://flickr.com/photos/saminatorh/6997247637 creative commons licensed (BY) flickr photo by Mark Coggins: http://flickr.com/photos/markcoggins/467412385 creative commons licensed (BY) flickr photo by juhansonin: http://flickr.com/photos/juhansonin/14366928947 creative commons licensed (BY) flickr photo by Lara604: http://flickr.com/photos/lara604/3164627888 creative commons licensed (BY) flickr photo by basheertome: http://flickr.com/photos/basheertome/6785217165 creative commons licensed (BY) flickr photo by Wonderlane: http://flickr.com/photos/wonderlane/8664125024 creative commons licensed (BY) flickr photo by Mel B.: http:// flickr.com/photos/42dreams/2452866650 creative commons licensed (BY) flickr photo by dbrekke: http://flickr.com/photos/dbrekke/521540644 Credits