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.4k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ヌーラボサービスにおける API 設計・運用のこれまでとこれから
Presentation Slides at API Meetup Tokyo #3
http://api-meetup.doorkeeper.jp/events/14087
株式会社ヌーラボ
PRO
September 26, 2014
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
The_Evolution_of_Bits_AI_SRE.pdf
nulabinc
PRO
0
350
進化するBits AI SREと私と組織
nulabinc
PRO
4
870
実践 Datadog MCP Server
nulabinc
PRO
4
860
全社横断PjM⽀援チーム “PEaS”の取り組みと プロジェクトマネジメント でのAI活⽤について
nulabinc
PRO
0
200
Datadog の RBAC のすべて
nulabinc
PRO
4
860
Datadog Live Tokyo 2025登壇資料
nulabinc
PRO
0
190
How to Migrate Your Backlog Free Plan
nulabinc
PRO
0
260
チームワークマネジメント Bar #5
nulabinc
PRO
0
99
Geeks Who Drink Fukuoka - 202508
nulabinc
PRO
0
75
Other Decks in Technology
See All in Technology
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
410
オートマトンと字句解析でRoslynを読む
tomokusaba
0
130
VPCセキュリティ対応の最新事情
nagisa53
2
350
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
7
6.4k
運用を犠牲にせずコストを制御し事業成長を支える B2B SaaS ID管理基盤におけるS3 Tableのログストレージ活用
kaminashi
1
130
A Bag-of-Documents Model for Query Specificity
dtunkelang
0
200
[しろおび夏祭り2026] チャットするAIから、作業するAIへ - 使われ方の変化と、その裏側で起きていること
kk0n
0
1.1k
AIがAPIを書く時代に、私たちは何を設計すべきか
nagix
0
200
テックカンファレンス三大ステークホルダーの文化人類学 ─ 違いを認め合う関係性作り
bash0c7
5
1.6k
『モンスターストライク』 の運営に伴走する! データ民主化への 解析グループの3つのアプローチ
mixi_engineers
PRO
0
200
LangfuseによるLLMOps基盤の構築と活用事例
zozotech
PRO
1
240
AI工学特論: MLOps・継続的評価
asei
11
3.1k
Featured
See All Featured
Design in an AI World
tapps
1
270
Context Engineering - Making Every Token Count
addyosmani
9
1k
Writing Fast Ruby
sferik
630
63k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
270
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
Automating Front-end Workflow
addyosmani
1370
210k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
230
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
620
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.7k
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