Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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 株式会社ヌーラボ
20251129_BacklogWorld.pdf
nulabinc
PRO
0
12
業務プロセス改善を開発⽣産性に つなげるまでの奮闘⽇記
nulabinc
PRO
0
52
AI とナレッジ共有で進化する Backlog の未来
nulabinc
PRO
0
95
DATA_SUMMT2025_Presentation_materials.pdf
nulabinc
PRO
0
84
Streamlitとロール関連の話
nulabinc
PRO
0
88
サクフェス2024_ヌーラボ原_CSと開発
nulabinc
PRO
0
25
チームの力を成果に変える、次世代のマネジメント術 〜中小企業の生産性革命〜
nulabinc
PRO
0
45
チームワークマネジメントとは
nulabinc
PRO
0
22
チームの未来を支えるバックログスイーパーという役割
nulabinc
PRO
0
21
Other Decks in Technology
See All in Technology
生成AI時代の自動E2Eテスト運用とPlaywright実践知_引持力哉
legalontechnologies
PRO
0
210
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
1.5k
生成AIでテスト設計はどこまでできる? 「テスト粒度」を操るテーラリング術
shota_kusaba
0
530
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
140
A Compass of Thought: Guiding the Future of Test Automation ( #jassttokai25 , #jassttokai )
teyamagu
PRO
1
250
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
440
AWS Trainium3 をちょっと身近に感じたい
bigmuramura
1
130
日本Rubyの会の構造と実行とあと何か / hokurikurk01
takahashim
4
940
GitLab Duo Agent Platformで実現する“AI駆動・継続的サービス開発”と最新情報のアップデート
jeffi7
0
210
ブロックテーマとこれからの WordPress サイト制作 / Toyama WordPress Meetup Vol.81
torounit
0
510
直接メモリアクセス
koba789
0
280
RAG/Agent開発のアップデートまとめ
taka0709
0
140
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Statistics for Hackers
jakevdp
799
230k
Fireside Chat
paigeccino
41
3.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Making Projects Easy
brettharned
120
6.5k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
How to Ace a Technical Interview
jacobian
280
24k
Practical Orchestrator
shlominoach
190
11k
Become a Pro
speakerdeck
PRO
31
5.7k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
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