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の略。
機能やデータを外部から呼び出して利用できるように定めた規約のこと。

RESTとは

 REpresentational State Transferの略。
分散型システムにおける設計原則群(設計ルール)のこと。
RESTには下記6つの原則がある。

  • クライアント/サーバー制約
  • ステートレス
  • キャッシュ制御
  • 統一インターフェース
  • 階層化システム
  • コードオンデマンド 

クライアント/サーバー制約

 クライアントとサーバーが依存することなくそれぞれが独立し、お互いに影響なく改良ができるような構造にすること。
画面とデータで関心事が分離されるため、どちらか一方が変更されても影響を受けにくくなる。
基本的には、クライアント側がトリガーとなり、サーバー側が受け身となる。

ステートレス

 リクエストの情報のみからレスポンスを返す(状態を保持しない)こと。
前のやりとりの結果に影響を受けないので、障害発生時には対象のリクエストのみを確認すれば良いため、復旧が容易になるメリットがある。

キャッシュ制御

 クライアント側のアプリケーションはレスポンスをキャッシュできる。
それにより、クライアントとサーバーの通信が排除され、ユーザー体験、リソース効率、拡張性の向上が見込める。

統一インターフェース

 情報の操作(取得、作成、更新、削除)は全てHTTPメソッド(GET、POST、PUT、DELETE)を利用すること。システムアーキテクチャ全体が簡素化され、わかりやすくなるメリットがある。

階層化システム

 複数のWEBサーバ、APサーバ、DBサーバで構成されるシステムのこと。システム内の機能やコンポーネントを階層的に組織化し、それぞれの階層が特定の役割を持つように設計されてるため、システムの保守や拡張がしやすくなるメリットがある。

コードオンデマンド

 サーバ側にあるHTMLやJavaScriptなどのプログラムをクライアント側にダウンロードして利用できること。リリース済みのクライアントに対して機能追加ができることや、サーバーの負荷が下がるメリットがある。

REST APIの実装例

 movieをリソースとしてCRUD操作のURI、HTTPメソッドを定義すると、下記のように実装されます。

URI HTTP method
http://api.example.com/movies GET
http://api.example.com/movies/12345 GET
http://api.example.com/movies POST
http://api.example.com/movies/12345 PUT
http://api.example.com/movies/12345 DELETE

参考文献

REST WebAPI サービス 設計
RESTful APIとは?概要や6つの原則についてご紹介

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?