0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめてのREST API

Posted at

REST API概要

APIとは①

  • Application Programming Interfaceの略
  • インターフェースとは何かをするための「道具(ツール)」
    • 例:ユーザーインターフェースはユーザーがPCを使うための道具
  • プログラミングインターフェースはプログラミングのための道具
  • APIとはアプリケーションを呼び出すためのプログラミングの道具

APIとは②

  • APIによって一から自分でプログラム(道具)を準備することなくやりたいことが実現できる
    • 例:Amazon Product Advertising API
      • 自分のブログ等にAmazonのアフィリエイトリンクを生成するためのAPI
      • ブログのソースにAPI呼び出し処理を記述することでAmazonの商品情報を取得・表示することができる

REST APIとは

  • REST は REpresentational State Transfer の略で、コンピュータ・サイエンティストの Roy Fielding によって作られた
  • 彼のRESTアーキテクチャスタイルの原則に合わせたAPI
  • 彼のスタイルに合わせたREST APIは特にRESTful APIと呼ばれる

REST APIの定義

  1. ステートレス性
  2. 統一インターフェース
  3. アドレス可読性
  4. 接続性

ステートレス性

  • ステート(状態)レス(ない)= やり取りが1回ごとに完結する。
    • サーバはクライアントのセッション情報を保持しない。

ステートレスなAPIのイメージ

:barber: いらっしゃいませ。今日はどんな感じにしますか?
:boy: 前髪は長め、サイドと後ろはすっきりした感じでお願いします。
:barber: ヘッドスパはどうですか?
:boy: 前髪は長め、サイドと後ろはすっきりした感じ、ヘッドスパをお願いします。
:barber: 以上でよろしいですか?
:boy: 前髪は長め、サイドと後ろはすっきりした感じ、ヘッドスパをお願いします。以上です。
:barber: かしこまりました。

ステートフルなAPIのイメージ

:barber: いらっしゃいませ。今日はどんな感じにしますか?
:boy: 前髪は長め、サイドと後ろはすっきりした感じでお願いします。
:barber: ヘッドスパはどうですか?
:boy: ヘッドスパもお願いします。
:barber: 以上でよろしいですか?
:boy: 以上です。
:barber: かしこまりました。

ステートレスのメリット・デメリットは以下の通り

メリット デメリット
セッション情報を保持する必要が無いためサーバー資源(メモリ、CPU等)を有効活用できる 毎回APIの処理に必要な情報を全て詰める必要があり、トラフィックを圧迫する(結果的にレスポンスが遅くなりリスクあり)
・スケーラビリティのあるシステムになる
・サーバーを増やせば増やすほど、スループット(単位時間あたりの処理データ量が向上する

統一インターフェース

  • あらかじめ定義・共有された方法でやり取りされる
    • HTTPリクエスト:GET/POST/PUT/DELETEなど
    • データの形式:JSON/XMLなど

アドレス可読性

  • アドレス可能性は、全ての情報が一意なURI(識別子)を持っていて、提供する情報をURIで表現できることです。

接続性

  • 接続性は、やりとりされる情報にはハイパーリンクを含めることができる、というものです。
  • 1つのリンクから別の情報にリンク(接続)することができて、RESTfulなシステム同士なら円滑に情報連携を行うことができます。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?