Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ヌーラボサービスにおける API 設計・運用のこれまでとこれから
Search
株式会社ヌーラボ
PRO
September 26, 2014
Technology
2
2.4k
ヌーラボサービスにおける API 設計・運用のこれまでとこれから
Presentation Slides at API Meetup Tokyo #3
http://api-meetup.doorkeeper.jp/events/14087
株式会社ヌーラボ
PRO
September 26, 2014
Tweet
Share
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
Nulab Fun Deck 〜チームワークが、世界をもっと『おもしろく』する〜
nulabinc
PRO
1
2.8k
How to Migrate Your Backlog Free Plan
nulabinc
PRO
0
18
チームワークマネジメント Bar #5
nulabinc
PRO
0
45
Geeks Who Drink Fukuoka - 202508
nulabinc
PRO
0
22
TRIAL Meetup#1
nulabinc
PRO
0
30
20251129_BacklogWorld.pdf
nulabinc
PRO
0
36
業務プロセス改善を開発⽣産性に つなげるまでの奮闘⽇記
nulabinc
PRO
0
80
AI とナレッジ共有で進化する Backlog の未来
nulabinc
PRO
0
130
DATA_SUMMT2025_Presentation_materials.pdf
nulabinc
PRO
0
120
Other Decks in Technology
See All in Technology
AI駆動開発を事業のコアに置く
tasukuonizawa
1
390
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
120
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
1.3k
AIが実装する時代、人間は仕様と検証を設計する
gotalab555
1
560
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
620
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
270
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
Why Organizations Fail: ノーベル経済学賞「国家はなぜ衰退するのか」から考えるアジャイル組織論
kawaguti
PRO
1
210
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
420
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
150
20260204_Midosuji_Tech
takuyay0ne
1
160
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
2.1k
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
30 Presentation Tips
portentint
PRO
1
230
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Marketing to machines
jonoalderson
1
4.7k
AI: The stuff that nobody shows you
jnunemaker
PRO
2
280
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
68
Speed Design
sergeychernyshev
33
1.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
55
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Transcript
API Meetup Tokyo #3 2014/09/26(⾦金金) @NTT コミュニケーションズ株式会社 ヌーラボサービスにおける API 設計・運⽤用のこれまでとこれから
染⽥田 貴志 SOMEDA Takashi @tksmd 株式会社ヌーラボ エバンジェリスト
Mashup Awards 10 http://mashupaward.jp/companies/24 • コラボレーションカテゴリで API 提供中! • 昨年年のヌーラボ賞は「博多よかとこ遊びにこんね賞」
None
JAWS Days 2013 国内を中⼼心に 約3000クライアント が利利⽤用するプロジェクト管理理ツール タスク管理理機能に加え、 • WebDAVによるファイル共有 •
GitやSubversionのリポジトリホスティング などを提供。 http://www.backlog.jp
全世界 約135万ユーザ が利利⽤用するオンラインのドローツール 基本的なドローツールの機能に加え • 複数のユーザで同時に編集出来るリアルタイムコラボレーション • Google+ Hangouts と連携して、ビデオチャットとあわせて利利⽤用可能
といった、コラボレーション機能が充実。 http://cacoo.com/
今年年正式版をリリースしたばかりの新しいチャットサービス • ヌーラボの各サービスとの連携 • 豊富で使いやすい API の提供 http://typetalk.in/
2014/02 正式ローンチ 2010/09 正式ローンチ 2006/05 正式ローンチ サービスのあゆみ
本⽇日のお話 1. なぜ今 API なのか 2. ヌーラボでの API の事例例 •
API の世代交代 • エディタ機能の外部提供のアプローチ • API を核にしたサービス設計と実装 3. まとめ
1. なぜ今 API なのか
#1 の yohei さんのお話 http://www.slideshare.net/yohei/webapi-‐‑‒36871915 API ファーストな サービス設計
#2 の naoya さんのお話 https://speakerdeck.com/naoya/kuraudosabisufalse-‐‑‒web-‐‑‒ api-‐‑‒tosofalseyusukesu-‐‑‒number-‐‑‒apijp ロジックを紡いで サービスを作る パーツとしての ⽂文字通り
API に
これまでの API サービス 開発者 API • サービスで提供する機能やデータの⼀一部、補完的な役割 • API は後から提供されるケースも多かった
これからの API サービス 開発者 API API サービス サービス API ユーザ
・ ・ • API がサービスそのものとしての顔をもつ • API の向こう側にエンドユーザがいる
Evernote のケース http://www.programmableweb.com/news/five-‐‑‒great-‐‑‒api-‐‑‒ ecosystem-‐‑‒lessons-‐‑‒evernote/2014/02/19 API 連携した アプリケーションが ユーザ満⾜足度度を向上させ 課⾦金金化を促進
API エコシステム サービス 開発者 API API サービス サービス API ユーザ
・ ・ • API そのものに加え、外部のサービスプロバイダーや開 発者との関係性の双⽅方が重要に
ヌーラボの取り組み • developer.nulab-‐‑‒inc.com にて⼀一元的な情報提供 • 開発者コミュニティの形成
ヌーラボの取り組み • ハッカソンの開催 • 公式ライブラリ(SDK)、ユーティリティの提供
ヌーラボの取り組み • Developer Advocate を絶賛採⽤用中! • API はサービスの海外展開の戦略略の⼀一端も Nulab API
の 開発者コミュニティ における推進 外部のプロダクトと ヌーラボプロダクトの 連携の促進
事例例1. API の世代交代
Backlog APIv1 (2007〜~) • API ⽅方式 • XML-‐‑‒RPC • 認証
• HTTP Basic 認証 • API で出来ること • 課題管理理系の機能を中⼼心に、プロジェクト作 成、ユーザ作成などの⼀一部の管理理機能も提供
Backlog APIv2 (2014〜~) • API ⽅方式 • REST / JSON
• 認証 • API Key • OAuth2 ( Authorization Code ) 準備中 • API で出来ること • ⼀一部のユーザ設定やバージョン管理理、 WebDAV を除いてほとんどすべてのこと
世代交代の背景 • 認証⽅方式、機能改善への要望は根強くあった • 公式 iPhone アプリにあわせて刷新を決断
移⾏行行ポリシー • 既存プログラムはそのまま動く • v1 の変更更・廃⽌止はしない • ただし新機能の追加もしない • 新規プログラムには
v2 を推奨 • v1 の機能は全てカバー • 機能要望は v2 のみ受け付け
v2 のアーキテクチャ データベース Web 向けの機能 APIv2 APIv1 Backlog アプリケーション
アプリケーションロジック 複雑なロジックを要するような処理理 専⽤用アプリとして実装
独⽴立立したアプリによる世代交代 • v1 に影響を与えることなく v2 を開発 • 最新フレームワークでスピーディに開発 • 複雑な処理理は既存の
v1 を内部的に呼び 出すことで実装コストを低減
事例例2. エディタ機能の外部提供のアプローチ
Cacoo API (2009〜~) • API ⽅方式 • REST / JSON,
XML • 認証 • API Key • OAuth 1.0a • API で出来ること • 図の作成、画像情報の取得、エディタの⾃自動 起動など
Cacoo SDK エディション • エディタを⾃自社製品に組み込むためのオンプレミス版 • Cacoo の最も魅⼒力力的な機能の1つがエディタ
ADFlow での事例例 画像に基づいた コミュニケーション に Cacoo を利利⽤用
• ユーザ情報は⾃自社サービスのデータを使 いたい • エディタの不不要な機能を使わせたくない • ロゴなどブランディングを⾃自社のものに あわせたい エディタ組み込みへのニーズ
オンプレミス版での提供 • cacoo.com では実現しにくい認証やブラ ンディングの問題をクリア • 専⽤用 API を提供することで細やかなニー
ズに対応 • カスタマイズではなく API
事例例3. API を核にしたサービス設計と実装
Typetalk API (2013〜~) • API ⽅方式 • REST / JSON
• 認証 • OAuth2 • API で出来ること • ⼀一部の管理理機能を除いてほぼ全て
モバイルファースト • iPhone / Android / ウェブの三本⽴立立て • 提供機能はシンプルに •
外部連携をしやすいように
API アーキテクチャ Web ⽤用の 認証 API ロジック Typetalk アプリケーション 実装コードは共通
OAuth2 による 認証 こちら側の経路路での API を外部に公開
通信速度度に対する⼯工夫 • nginx-‐‑‒gzip-‐‑‒filter-‐‑‒allow-‐‑‒weak-‐‑‒etag-‐‑‒patch • gzip フィルター処理理時に weak ETag は保持 するパッチ
• JSON から weak ETag を⽣生成 • サーバは富豪、ネットワークのほうが重要 https://github.com/nulab/nginx-‐‑‒gzip-‐‑‒filter-‐‑‒allow-‐‑‒weak-‐‑‒ etag-‐‑‒patch
実装・運⽤用での⼯工夫 • 実装コストが⼆二倍にならないようなアー キテクチャ設計 • モバイルにやさしく
今後の予定 • ストリーミング API の提供 • 管理理系 API の順次提供 •
⼿手軽な認証⽅方式のサポート
3. まとめ
本⽇日のお話 1. なぜ今 API なのか 2. ヌーラボでの API の事例例 •
API の世代交代 • エディタ機能の外部提供のアプローチ • API を核にしたサービス設計と実装 3. まとめ
なぜ今 API なのか サービス 開発者 API API サービス サービス API
ユーザ ・ ・ • API そのものはサービスと同等の機能提供に • 開発者や補完関係となるサービスとの連携
ヌーラボの API 事例例 • トレンドの中で実践的な技術を採択する • サービスのどこが「他の⼈人が使いたい か」を意識識して外部機能を提供する • 実装コストを意識識する
API のこれから 開発者しか できなかったことが ユーザでも出来る ように https://ifttt.com/
API のこれから https://speakerdeck.com/nulabinc/jin-‐‑‒dokifalseriarutaimukoraboresiyonturufalsezuo-‐‑‒ rifang-‐‑‒backlog-‐‑‒cacoo-‐‑‒typetalkniokerushi-‐‑‒jian-‐‑‒li
http://www.flickr.com/photos/expressmonorail/3470644819 API もリアルタイムへ
ご清聴 ありがとうございました ツイッター、やってます。 @nulabinc