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?

REST APIとは?前回の「APIとはなんぞや?」の続き

0
Posted at

はじめに

こんにちは!
前回の記事では「APIってそもそも何?」という話をしました。
今回はそこから一歩進んで、Web開発でほぼ必ず登場する REST API についてまとめていきます。

4つだったり6つだったり原則があるみたいですが、とりあえず今回は簡単に理解するために書きます。

REST APIって何?

REST API = Webのルールに従って、データをやりとりするためのAPIの“スタイル”

ポイントは「REST という決まりに沿っているかどうか」です。

RESTは“やりとりのマナー”のようなもの

例えばレストランでは

  • 食器の置き方
  • 注文の仕方
  • サービスの流れ

など、ある程度決まった“マナー”がありますよね。

RESTもそれと同じで、APIの使い方やデータの扱い方に一定の“お作法”を決めようという考え方です。

このお作法に従っているAPIが REST API と呼ばれます。

REST APIの重要ポイント

RESTには細かいルールがありますが、初学者が理解すべきは この4つのメソッド です

メソッド 意味 やること
GET 取得 データを見る
POST 作成 新しいデータを追加
PUT / PATCH 更新 既存データを変更
DELETE 削除 データを消す

つまり、REST API = これらのメソッドを使ってデータを扱うAPI です。

URLにもルールがある

RESTでは URL(エンドポイント)が“もの(リソース)”を表す という考え方が使われます。

例:ユーザーというリソース

/users

よくあるRESTの例

操作 URL メソッド
ユーザー一覧を見る /users GET
新規ユーザー作成 /users POST
特定ユーザー取得 /users/1 GET
特定ユーザー更新 /users/1 PUT または PATCH
特定ユーザー削除 /users/1 DELETE

これができると、どのアプリでも扱いが統一されて理解しやすいというメリットがあります。

JSONとセットで使われることが多い

REST APIでは返り値として JSON がよく使われます。

例:

{
  "id": 1,
  "name": "John",
  "role": "admin"
}

フロントエンド(React/Vue)も、モバイルアプリも、Laravelも、
JSONが共通言語になっているので便利!

REST APIのメリット

✔ とにかくわかりやすい

URLとメソッドを見れば何をするAPIかわかる。

✔ どの言語でも利用しやすい

LaravelでもRubyでもJavaでも同じパターン。

✔ 拡張・保守がしやすい

“お作法”があるからチーム開発が楽。

REST APIのイメージを図で表すと…

[フロント] → GET → /posts → [サーバー] → 投稿一覧を返す(JSON)
[フロント] → POST → /posts → [サーバー] → 新規投稿を登録
[フロント] → DELETE → /posts/1 → [サーバー] → 投稿1を削除

ただURLに対して決まったメソッドで操作しているだけ!
これがRESTのシンプルさです。

まとめ

  • REST API = Webの“お作法”に従ったAPI
  • 特徴は GET / POST / PUT / DELETE の4つ
  • URLは「データそのもの」を表す
  • JSONでやりとりすることが多い
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?