SlideShare a Scribd company logo
RESTfulなAPIの設計の 
お話 
Futoshi Takano
なぜREST? 
RESTは設計時の制約が強い 
→ 不特定多数の人が設計しても一貫性を担 
保できる 
→ 公開APIなど、不特定多数の人が用いる 
API、複数の人が設計する時に向いている
ROA(Resource Oriented 
Architecture) 
RESTのAPI設計では、ROAという設計手法 
が広く用いられている。
ROA(Resource Oriented 
Architecture)の4つの概念 
リソース 
URI 
表現(Representation) 
リンク
ROA(Resource Oriented 
Architecture)の4つの特徴 
アドレス可能性 
ステートレス性 
接続性 
統一インターフェース
RestfulなAPIの設計のお話
リソースとURI 
リソース: データとして表現できるもの。 
リソースは名前とアドレスを与えるための 
URIを持たなくてはならない。 
 https://qiita.com/api/v1/users/ftsan 
 GETでリクエスト送信すると・・・
リソースとURI 
{ 
id: 19175, 
url_name: “ftsan", 
url: "http://qiita.com/ftsan", 
description: “”, ….
表現 
リソースの表現はJSON形式。 
{ 
id: 19175, 
url_name: "ftsan", 
url: "http://qiita.com/ftsan", 
description: “”, ….
リンク 
user: [ 
{id: 38270, url_name: “Takano”,….}, 
{id: 38271, url_name: “Futoshi”,….},…. 
http://aaa.test.com/v1/user/{id} 
上記のようなURLの場合、idは個々のuserを指し 
示すリンクであると言える。
アドレス可能性 
提供する情報がURIを通して表現できる。 
JSON Pointerを使ってJSON構造内のどのオ 
ブジェクトを指し示すかを表現できる。 
/data/0/id → dataは配列、左記のURLは 
/data/0で表現されるデータのid
ステートレス性 
APIリクエストのための情報がすべて独立・ 
分離していること。前提条件を必要としない。 
→ セッションとかCookieを使わない。 
ROAの場合はリソースはURIで与えられるた 
め、自然とステートレスになる。
接続性 
リソースは別のリソースとの関連を表すリン 
クを持ちうる
統一インターフェース 
リソースの操作をHTTPの標準のメソッドで 
行う(GET, POST, PUT, DELETE) → 安全 
性とべき等性を持つようになる
統一インターフェース 
リソースの操作をHTTPの標準のメソッドで 
行う(GET, POST, PUT, DELETE) → 安全 
性とべき等性を持つようになる 
安全性  → サーバ側の状態を変更しない性質 
べき等性 → 操作を何度繰り返しても同じ結果が返っ 
てくる
統一インターフェース 
エラー表現にHTTPのステータスコードを利 
用する。 
200:OK → GET等のレスポンス成功時 
404:Not Found → 存在しないリソースにア 
クセスした時
難しい・・・
参考:WEB+DB PRESS Vol.82 
http://gihyo.jp/magazine/wdpress/archive/2014/vol82 
! 
この本なんかも参考になるかと・・・ 
Webを支える技術 ── HTTP,URI,HTML,そして 
REST 
http://gihyo.jp/magazine/wdpress/plus/ 
978-4-7741-4204-3
ご清聴ありがとうございましたm(_ _)m

More Related Content

PDF
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
PDF
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門
PPTX
MLOps入門
PPTX
Power BI のいろいろな活用パターン
PPTX
ファイルサーバーを SharePoint に移行するためのアプローチ
PPTX
技術者として抑えておきたい Power BI アーキテクチャ
PPTX
Power BI をアプリに埋め込みたい? ならば Power BI Embedded だ!
PDF
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門
MLOps入門
Power BI のいろいろな活用パターン
ファイルサーバーを SharePoint に移行するためのアプローチ
技術者として抑えておきたい Power BI アーキテクチャ
Power BI をアプリに埋め込みたい? ならば Power BI Embedded だ!
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱

What's hot (20)

PDF
FormsとPower AutomateとTeamsを使った問合せ管理の仕組みをつくる
PDF
パターン(ランゲージ)によるKnow Why/What/How の言語化・文書化と発展, MLSE夏合宿
PDF
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
PPTX
Power BI + OneDrive の最も簡単でかつ最も効率的な使い方のひとつ
PPTX
全自動Zabbix ver2
PDF
PWNの超入門 大和セキュリティ神戸 2018-03-25
PDF
Wireshark だけに頼らない! パケット解析ツールの紹介
PDF
初心者向けCTFのWeb分野の強化法
PDF
MariaDBとMroongaで作る全言語対応超高速全文検索システム
PDF
Fess/Elasticsearchを使った業務で使える?全文検索への道
PPTX
kintone x Sansan 連携事始め~カスタマイズまで
PPTX
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
PDF
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
PPTX
Microsoft 365 を使い、よりよい業務環境の在り方と仕事への向き合い方を考えよう
PDF
DatadogでAWS監視やってみた
PDF
Cloud Foundryは何故動くのか
PDF
IIJmio meeting 31 SIMフリースマホの昔と今
PDF
Cloud Foundry V2を、もうちょっと深掘りしよう
PDF
ctfで学ぼうリバースエンジニアリング
PPTX
3ヶ月で50%の社員が利用するツールに
FormsとPower AutomateとTeamsを使った問合せ管理の仕組みをつくる
パターン(ランゲージ)によるKnow Why/What/How の言語化・文書化と発展, MLSE夏合宿
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Power BI + OneDrive の最も簡単でかつ最も効率的な使い方のひとつ
全自動Zabbix ver2
PWNの超入門 大和セキュリティ神戸 2018-03-25
Wireshark だけに頼らない! パケット解析ツールの紹介
初心者向けCTFのWeb分野の強化法
MariaDBとMroongaで作る全言語対応超高速全文検索システム
Fess/Elasticsearchを使った業務で使える?全文検索への道
kintone x Sansan 連携事始め~カスタマイズまで
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
Microsoft 365 を使い、よりよい業務環境の在り方と仕事への向き合い方を考えよう
DatadogでAWS監視やってみた
Cloud Foundryは何故動くのか
IIJmio meeting 31 SIMフリースマホの昔と今
Cloud Foundry V2を、もうちょっと深掘りしよう
ctfで学ぼうリバースエンジニアリング
3ヶ月で50%の社員が利用するツールに
Ad

Similar to RestfulなAPIの設計のお話 (10)

PDF
REST API のコツ
PPTX
1st LODandOntology studysession aboutRDF
PDF
RESTful API 入門
PPTX
Spring'17リリースノート輪読会 API By フレクト
PDF
Hasura APIで 個人開発が捗った話.pdf
PDF
Rails add ons derails_devcon
PPTX
IOTS2021発表スライド:オントロジーを用いたOpenAPI Documentの制約推薦システム
PDF
BEAR.Sunday.meetup #0
PDF
AWSで医療AI、機械学習のREST APIを構築する方法
PDF
AWSで医療AI、機械学習のREST APIを構築する方法
REST API のコツ
1st LODandOntology studysession aboutRDF
RESTful API 入門
Spring'17リリースノート輪読会 API By フレクト
Hasura APIで 個人開発が捗った話.pdf
Rails add ons derails_devcon
IOTS2021発表スライド:オントロジーを用いたOpenAPI Documentの制約推薦システム
BEAR.Sunday.meetup #0
AWSで医療AI、機械学習のREST APIを構築する方法
AWSで医療AI、機械学習のREST APIを構築する方法
Ad

RestfulなAPIの設計のお話