SlideShare a Scribd company logo
HTTP API Design Guide
HerokuのAPIデザインガイド

Ayumu Aizawa

Dev. Marketing Manager / Solutions Architect

Heroku Inc.
27th Mar,2015
Designing API
APIを設計することは世界を創造すること
オレオレワールドに陥りやすい

ぼくのかんがえたさいきょうの⃝⃝
Heroku’s HTTP API Design Guide
Heroku’s HTTP API Design Guide
HerokuのAPIデザインから得た知見をまとめた

API設計のガイドライン
devcenter.heroku.com/categories/platform-api
github.com/interagent/http-api-design
Heroku Platform API
Separate Concerns
APIはユーザの関心ごとに応じて適切に分割する
• 必ずしも内部のリソース構造と同じではない
• ユーザ対してサービスの単位をどうみせるか?
• アプリケーション、アカウント、ビルド、Dyno、ドメイン

….
Require Secure Connection
APIの呼び出しは例外なくTLSなどの安全な通信のみ

に応答するように実装する
• 何をセキュアにして何をセキュアにしないか?ではなく

全てをセキュアに保つ
• APIが提供する機能がセキュリティ脆弱性があった場合の影響を

軽減
Use consistent path format
エンドポイントには一貫したフォーマットを利用する
• 基本的なリソースの操作に関しては、操作をパスに含める

必要はないが、必要な場合には /actions の下に定義
/runs/{run_id}/actions/stop
Provide Request-Ids for Introspection
リソースにはグローバルで一意になるIDを付与する
• リソースのトレーサビリティ
• 同じIDは常に同じリソースを返す
Divide Large Responses Across
Requests with Ranges
レスポンスが大きくなる時には”Range”でデータを分割する
• リクエストヘッダーで範囲を指定
• 必要であればソート順なども指定
Return appropriate status codes
クライアントからのリクエストに対して適切な

HTTPステータスコードで応答する
• 200:GETリクエストの成功、

DELETE/PATCH/PUTによる

情報の更新が完了
• 201:POSTリスエストによる

情報の作成が完了
• 202:POST/DELETE/PATCH/
PUTを受付けた更新は非同期で

実行される
• 206:GETリスエストが正常に

受付けられたが一部の情報のみ

返す
Provide executable example
実行可能な利用例を提供する
• ユーザが実際に端末から(手で)実行可能な利用例を提供
Provide machine-readable JSON schema

Provide human-readable docs
プログラムで処理しやすいJSONスキーマを提供する

人間が読みやすいドキュメントを提供する
Prmd
JSONスキーマの作成、検証、ドキュメント生成
prmd init : JSONスキーマの雛形を作成
prmd verify: JSONスキーマの検証
prmd doc: ドキュメントの生成
Heroku’s HTTP API Design Guide
くわしくはこちらを御覧ください
devcenter.heroku.com/categories/platform-api
github.com/interagent/http-api-design
Heroku Platform API
Thank you
heroku.com

More Related Content

What's hot (20)

PDF
Archtect meetup sharing_territory_20190801
Ikou Sanuki
 
PDF
Monacaエンタープライズのご紹介
アシアル株式会社
 
PDF
12 power night2014 miyanishi
TerraSky
 
PPT
アプリ製作ツール HiCIEL 紹介
baeksunil
 
PPTX
Akarenga.lt
ru pic
 
PDF
Skype for Business IoT
adachiyosuke
 
PPTX
Lightingコンポーネントベーシック開発
Akihiro Iwaya
 
PDF
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
MPN Japan
 
PPTX
Secure coding external app integration
Junji Imaoka
 
PDF
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
 
PDF
Lightning Component公開への道 ~「Multi-View Calendar」開発で分かったこと~
寛 吉田
 
PPTX
クロスプラットフォーム開発を可能にするMonacaとそのセキュリティ対策
Monaca
 
PDF
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
アシアル株式会社
 
PPTX
App001 .net core_アプリケーショ
Tech Summit 2016
 
PDF
App001 .net core_アプリケーショ
Tech Summit 2016
 
PPTX
#3 Go_SaaS Onboarding Seminar Auth0 20191023
Rica Nakajima
 
PDF
Lync 2013 API カスタマイズアプリ開発
adachiyosuke
 
PPTX
Lync でできる? 仕事効率化
Manato KAMEYA
 
PDF
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
日本Cordovaユーザー会
 
PPTX
Cordova×業務システム:失敗しないモバイル開発の秘訣
アシアル株式会社
 
Archtect meetup sharing_territory_20190801
Ikou Sanuki
 
Monacaエンタープライズのご紹介
アシアル株式会社
 
12 power night2014 miyanishi
TerraSky
 
アプリ製作ツール HiCIEL 紹介
baeksunil
 
Akarenga.lt
ru pic
 
Skype for Business IoT
adachiyosuke
 
Lightingコンポーネントベーシック開発
Akihiro Iwaya
 
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
MPN Japan
 
Secure coding external app integration
Junji Imaoka
 
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
 
Lightning Component公開への道 ~「Multi-View Calendar」開発で分かったこと~
寛 吉田
 
クロスプラットフォーム開発を可能にするMonacaとそのセキュリティ対策
Monaca
 
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
アシアル株式会社
 
App001 .net core_アプリケーショ
Tech Summit 2016
 
App001 .net core_アプリケーショ
Tech Summit 2016
 
#3 Go_SaaS Onboarding Seminar Auth0 20191023
Rica Nakajima
 
Lync 2013 API カスタマイズアプリ開発
adachiyosuke
 
Lync でできる? 仕事効率化
Manato KAMEYA
 
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
日本Cordovaユーザー会
 
Cordova×業務システム:失敗しないモバイル開発の秘訣
アシアル株式会社
 

Similar to Heroku HTTP API Design Guide (20)

PDF
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
Amazon Web Services Japan
 
PDF
Api設計
Yuto Suzuki
 
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
miso- soup3
 
PDF
Rest ful api設計入門
Monstar Lab Inc.
 
PDF
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
Natsuki Yamanaka
 
PPTX
LINE API × heroku ×selenium
医療IT数学同好会 T/T
 
PPTX
Fun tech14-alibaba cloud api gateway-swagger
AnzaiKumiko
 
PDF
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
Isamu Suzuki
 
PDF
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
leverages_event
 
PDF
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Toru Kawamura
 
PDF
20190514 AWS Black Belt Online Seminar Amazon API Gateway
Amazon Web Services Japan
 
PPTX
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
Kohei Saito
 
PDF
20200708サーバーレスでのAPI管理の考え方
Amazon Web Services Japan
 
PPTX
APIモック3分クッキング
政雄 金森
 
PPTX
Swagger jjug ccc 2018 spring
kounan13
 
PDF
(Ruby + Agile) x Cloud = Like!
Ayumu Aizawa
 
PDF
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
オラクルエンジニア通信
 
PDF
[Azure Deep Dive] APIエコノミーに向けて ~Azure API ManagementによるAPIの公開と管理~ (2016/12/16)
Naoki (Neo) SATO
 
PDF
Hasura APIで 個人開発が捗った話.pdf
KaiseiArimura
 
PDF
カラーミーAPIドキュメントの今後
Joe_noh
 
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
Amazon Web Services Japan
 
Api設計
Yuto Suzuki
 
50分で掴み取る ASP.NET Web API パターン&テクニック
miso- soup3
 
Rest ful api設計入門
Monstar Lab Inc.
 
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
Natsuki Yamanaka
 
LINE API × heroku ×selenium
医療IT数学同好会 T/T
 
Fun tech14-alibaba cloud api gateway-swagger
AnzaiKumiko
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
Isamu Suzuki
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
leverages_event
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Toru Kawamura
 
20190514 AWS Black Belt Online Seminar Amazon API Gateway
Amazon Web Services Japan
 
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
Kohei Saito
 
20200708サーバーレスでのAPI管理の考え方
Amazon Web Services Japan
 
APIモック3分クッキング
政雄 金森
 
Swagger jjug ccc 2018 spring
kounan13
 
(Ruby + Agile) x Cloud = Like!
Ayumu Aizawa
 
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
オラクルエンジニア通信
 
[Azure Deep Dive] APIエコノミーに向けて ~Azure API ManagementによるAPIの公開と管理~ (2016/12/16)
Naoki (Neo) SATO
 
Hasura APIで 個人開発が捗った話.pdf
KaiseiArimura
 
カラーミーAPIドキュメントの今後
Joe_noh
 
Ad

More from Ayumu Aizawa (20)

PDF
Introducing Fn Project
Ayumu Aizawa
 
PDF
Heroku
Ayumu Aizawa
 
PDF
Heroku Changelog in 2013
Ayumu Aizawa
 
PDF
Connected Products
Ayumu Aizawa
 
PDF
Heroku Update Jul, 2013
Ayumu Aizawa
 
PDF
Heroku Update
Ayumu Aizawa
 
PDF
Heroku - Forget Servers!!
Ayumu Aizawa
 
PDF
Heroku Getting Started
Ayumu Aizawa
 
PDF
Heroku Postgres
Ayumu Aizawa
 
PDF
Using Ruby2.0 on Heroku
Ayumu Aizawa
 
PDF
Enterprise Heroku for Java
Ayumu Aizawa
 
PDF
Heroku
Ayumu Aizawa
 
PDF
カスタムアプリケーションプラットフォーム Salesforce Heroku ~ ソーシャルアプリケーションを支える技術 ~
Ayumu Aizawa
 
PDF
Herokuのご紹介
Ayumu Aizawa
 
PDF
Heroku Inside
Ayumu Aizawa
 
PDF
Heroku Introduction
Ayumu Aizawa
 
PDF
Herokuのご紹介
Ayumu Aizawa
 
PDF
Building scalablewebapps
Ayumu Aizawa
 
PDF
Heroku in Japan
Ayumu Aizawa
 
PDF
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ayumu Aizawa
 
Introducing Fn Project
Ayumu Aizawa
 
Heroku
Ayumu Aizawa
 
Heroku Changelog in 2013
Ayumu Aizawa
 
Connected Products
Ayumu Aizawa
 
Heroku Update Jul, 2013
Ayumu Aizawa
 
Heroku Update
Ayumu Aizawa
 
Heroku - Forget Servers!!
Ayumu Aizawa
 
Heroku Getting Started
Ayumu Aizawa
 
Heroku Postgres
Ayumu Aizawa
 
Using Ruby2.0 on Heroku
Ayumu Aizawa
 
Enterprise Heroku for Java
Ayumu Aizawa
 
Heroku
Ayumu Aizawa
 
カスタムアプリケーションプラットフォーム Salesforce Heroku ~ ソーシャルアプリケーションを支える技術 ~
Ayumu Aizawa
 
Herokuのご紹介
Ayumu Aizawa
 
Heroku Inside
Ayumu Aizawa
 
Heroku Introduction
Ayumu Aizawa
 
Herokuのご紹介
Ayumu Aizawa
 
Building scalablewebapps
Ayumu Aizawa
 
Heroku in Japan
Ayumu Aizawa
 
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ayumu Aizawa
 
Ad

Recently uploaded (10)

PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
PDF
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 

Heroku HTTP API Design Guide