13
10

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について

13
Posted at

【REST APIについて】

REST API は、Web 上でデータをやり取りするための最も一般的な仕組みで、HTTP(GET/POST/PUT/DELETE など)を使って「リソース」を操作するシンプルで拡張性の高い API 方式であり、Web・モバイル・IoT などあらゆるサービスで使われています。

■ REST API の概要

REST API(Representational State Transfer API)は、RESTという設計原則に従って作られたWeb APIのことです。

■ REST の特徴(要点)

・ステートレス:サーバーはリクエスト間の状態を保持しない

・リソース指向:データ(ユーザー、商品など)をURIで表現する

・HTTP メソッドを活用:

  GET:取得

  POST:作成

  PUT/PATCH:更新

  DELETE:削除

・シンプルで拡張性が高い:Web標準に沿っているため、どんなクライアントとも連携しやすい

■ REST API が使われる場面

・Webサービス同士の連携(例:SNS ログイン)

・スマホアプリとサーバーの通信

・IoT デバイスとのデータ送受信

■ REST API の仕組み

①クライアントがリクエストを送る(URL + HTTP メソッド)

②サーバーが処理する(認証・データ取得・更新など)

③レスポンスを返す(JSON が一般的)

この3ステップが REST API の基本動作となる。

以下では、それぞれのステップを“内部で何が起きているか”まで踏み込んで詳しく説明します。

<REST API の仕組みを徹底解説>

1. クライアントがリクエストを送信する

クライアント(ブラウザ、スマホアプリ、別のサーバーなど)は、特定のリソースに対して操作を行うためにHTTPリクエストを送ります。

リクエストに含まれるもの

・URL(エンドポイント)
  例:https://api.example.com/users/123

・HTTPメソッド

  ・GET:取得
  ・POST:作成
  ・PUT/PATCH:更新
  ・DELETE:削除

・ヘッダー(Header)

  ・認証情報(例:Authorization: Bearer)
  ・送受信するデータ形式(例:Content-Type: application/json)

・ボディ(Body)※必要な場合のみ
  POSTやPUTのときに送るデータ

  {
   "name": "Taro",
   "age": 20
  }

この段階で起きていること

・クライアントは「どのリソースに」「どんな操作をしたいか」を明確に伝える
・サーバーはまだ何もしていない(ただ受け取る準備をしている)

2.サーバーがリクエストを処理する

サーバーはリクエストを受け取ると、次のような処理を順番に行います。

①リクエストの検証

・URLが正しいか
・メソッドが許可されているか
・JSONが正しい形式か

②認証・認可(Auth)

・トークンが有効か
・このユーザーがその操作を行う権限を持っているか

③ビジネスロジックの実行

・データベースからデータを取得
・新しいデータを保存
・既存データを更新
・外部サービスを連携
など

④レスポンス用データの整形

・クライアントが必要とする形式(多くはJSON)に変換
・不要な情報は除外
・エラーの場合はエラーコードとメッセージを準備

3.サーバーがレスポンスを返す

処理が完了すると、サーバーはクライアントにHTTPレスポンスを返します。

レスポンスに含まれるもの

・ステータスコード

  ・200:成功
  ・201:作成成功
  ・400:リクエストが不正
  ・401:認証エラー
  ・404:リソースが存在しない
  ・500:サーバー内部エラー

・ヘッダー

  ・データ形式(例:Content-Type: application/json)

・ボディ(Body)

  ・実際のデータ(JSONが一般的)

例:ユーザー情報取得のレスポンス

  {
   "id": 123,
   "name": "Taro",
   "age": 20
  }

全体の流れを図にすると、

[クライアント]
  |
  | ① HTTPリクエスト(URL + メソッド + ヘッダー + ボディ)
  v
[サーバー]

  • リクエスト検証
  • 認証・認可
  • データベース処理
  • レスポンス生成
    |
    | ③ HTTPレスポンス(ステータス + JSON)
    v
    [クライアント]

■ 例:ユーザー情報を扱うREST API

操作  HTTPメソッド URI        説明

取得  GET       /users/123    ID 123 のユーザー情報を取得
作成  POST      /users      新規ユーザーを作成
更新  PUT/PATCH   /users/123     ユーザー情報を更新
削除  DELETE     /users/123     ユーザーを削除

■ REST APIのメリット

・シンプルで学びやすい

・スケールしやすい(ステートレス)

・JSONなど軽量な形式で通信できる

・どんなプラットフォームとも連携しやすい

以上です。

「なりたい自分の、その先へ」
エンジニアファーストの会社、助け合いの共同体、ワークスタイルは多様、集まり帰る場所のある会社

株式会社CRE-COエンジニアリングサービス
https://www.cre-co.jp/
伊藤 俊広

私たちと一緒に働きませんか?
https://en-gage.net/cre-co/

13
10
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
13
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?