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 株式会社ヌーラボ
サクフェス2024_ヌーラボ原_CSと開発
nulabinc
PRO
0
10
チームの力を成果に変える、次世代のマネジメント術 〜中小企業の生産性革命〜
nulabinc
PRO
0
33
チームワークマネジメントとは
nulabinc
PRO
0
10
チームの未来を支えるバックログスイーパーという役割
nulabinc
PRO
0
7
ヌーラボが取り組む RevOpsのこれまでとこれから
nulabinc
PRO
1
190
【資料】30分でわかる!“とりあえず課題を作った”から抜け出すBacklog活用術
nulabinc
PRO
0
170
【展示会ご参加者様向け】Backlog概要編-配布資料
nulabinc
PRO
0
61
Why Platform Engineering? - マルチプロダクト・少人数 SRE の壁を越える挑戦 -
nulabinc
PRO
5
790
Datadog のトライアルを成功に導く技術 / Techniques for a successful Datadog trial
nulabinc
PRO
0
490
Other Decks in Technology
See All in Technology
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
130
Optuna DashboardにおけるPLaMo2連携機能の紹介 / PFN LLM セミナー
pfn
PRO
1
890
BtoBプロダクト開発の深層
16bitidol
0
350
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
190
pprof vs runtime/trace (FlightRecorder)
task4233
0
170
小学4年生夏休みの自由研究「ぼくと Copilot エージェント」
taichinakamura
0
310
M5製品で作るポン置きセルラー対応カメラ
sayacom
0
160
AWSにおけるTrend Vision Oneの効果について
shimak
0
130
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9k
職種別ミートアップで社内から盛り上げる アウトプット文化の醸成と関係強化/ #DevRelKaigi
nishiuma
2
140
KAGのLT会 #8 - 東京リージョンでGAしたAmazon Q in QuickSightを使って、報告用の資料を作ってみた
0air
0
210
10年の共創が示す、これからの開発者と企業の関係 ~ Crossroad
soracom
PRO
1
360
Featured
See All Featured
Code Review Best Practice
trishagee
72
19k
Designing for Performance
lara
610
69k
Navigating Team Friction
lara
189
15k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Docker and Python
trallard
46
3.6k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
RailsConf 2023
tenderlove
30
1.2k
Practical Orchestrator
shlominoach
190
11k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
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