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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
pochi
August 29, 2014
Technology
4.3k
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.2k
Other Decks in Technology
See All in Technology
Spring BootからQuarkusへの移行
tatsuya1bm
2
120
生成AIエージェントを用いた、 手動テスト手順書から自動テストへの 変換手法の検討
magicpod
0
160
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
190
日経電子版を支えていく Kasane Design System/fec_fukuoka
nikkei_engineer_recruiting
0
1.5k
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
1
1.4k
AI 時代のスタートアップエコシステ厶から考究する技術的負債との向き合い方
m3m0r7
PRO
2
2.1k
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
150
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
260
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
110
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
7
2.9k
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
2k
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Documentation Writing (for coders)
carmenintech
77
5.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
720
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Designing for Performance
lara
611
70k
Claude Code のすすめ
schroneko
67
230k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
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