結論
REST APIとは
RESTのルールに従ったAPIのことです。
そもそもRESTとは何か
webサービス設計思想の1つ
Twiiterなどのアプリを作るときにどういう手段で作っていくかを考える思想の1つ
REST4大設計のルール
※RESTは4つ以上ありますが今回は一般的な4つを解説します。
このルールを満たしたサービスがRESTfullと言われています。
1.アドレス可能性(Addressability)
2.統一インターフェース(Uniform Interface)
3.ステートレス性(Stateless)
4.接続性(Connectability)
1.アドレス可能性(Addressability)
クライアントが送ったURL(アドレス)をサーバーが理解しそれをクライアント返していること。
例:
ユーザーがQiitaのマイページのボタンを押したときにクライアント側からユーザーがマイページが見たいですといった情報がサーバーに送られる。
そしてサーバーが分かりましたとマイページの画面がクライアント側に返ってくる。
2.統一インターフェース(Uniform Interface)
この4つのメソッドを統一して使おうというのが統一インターフェースです。
1.GET
2.POST
3.PUT
4.DELETE
サーバーはjson形式でデータを返します。
3.ステートレス性(Stateless)
クライアントの情報を持たないように設計する。
例:
Qiitaのページに初めて入ったときに一覧の画面にいきますがこれが2回目に入った場合前回投稿ページで画面が閉じられたので投稿ページを開いてあげるといった前回の情報を覚えている状態のことをステートフル(状態を持っている)と言います。
逆に毎回前回の情報を忘れて一覧ページを開くのがステートレスな状態となります。
これを聞くとステートフルな状態の方がいいと思う方もいらっしゃると思いますがこれは管理がとても大変でユーザーごとに前回の情報を記憶しないといけなくなります。
ステートレスだと記憶をしなくて良くなるので管理が簡単で欲しい情報を言えばサーバから返ってくるので拡張性が上がります。
4.接続性(Connectability)
Qiitaで言うと一つの記事に対して複数のリンクがある状態のこと。
蜘蛛の巣のようにリンクが広がっていくこと。