LoginSignup
0
0

REST APIについて

Last updated at Posted at 2023-09-13

REST APIとは

REST(Representational State Transfer)APIは、ウェブサービスの設計アーキテクチャの一つで、HTTPプロトコルを使用してデータをやり取りするための標準化された手法です。RESTは、分散システムやクライアントとサーバー間の通信を効率的に行うために設計されました。REST APIは、特にウェブアプリケーションやモバイルアプリケーションなどのクライアントとサーバー間でデータを交換するために広く使用されています。

REST APIの主要な特徴と概念

リソース指向:REST APIはリソース(データやエンティティ)を表現し、それに対する操作を提供します。これらのリソースは一般的にURLで識別され、HTTPメソッド(GET、POST、PUT、DELETEなど)を使用して操作されます。

ステートレス:RESTはステートレスであるため、各リクエストは独立して処理されます。前のリクエストとの状態を保持しないため、サーバーサイドではセッション情報を維持する必要がありません。これにより、システムの拡張性が向上します。
参考記事
https://apidog.com/jp/blog/what-is-stateless/

標準HTTPメソッド:REST APIはHTTPメソッド(GET、POST、PUT、DELETEなど)を使用して操作を実行します。たとえば、GETリクエストはリソースの取得に使用され、POSTリクエストは新しいリソースの作成に使用されます。

統一されたインターフェース:REST APIは、HTTPリクエストとHTTPレスポンスを介してデータを送受信します。この一貫性のあるインターフェースは、開発者が理解しやすく、使用しやすいです。

プレーンテキストまたはJSON/XML:REST APIは通常、プレーンテキストまたはJSON(JavaScript Object Notation)またはXML(eXtensible Markup Language)形式でデータを送受信します。JSONは特に広く使用されており、データの構造を表現しやすく、解析しやすい形式です。

状態を持たない:RESTはクライアントからのリクエストに応じて状態を持たないため、各リクエストはサーバーに完全な情報を含む必要があります。これにより、サーバーサイドのスケーラビリティが向上し、冗長な状態管理の必要性が低減します。

URLとURIの違い

URLはWeb上での住所

URLは「Uniform Resource Locator」の略で、Web上にあるあらゆるファイルがWeb上のどの位置にあるのかを表したものです。
URL=住所

URNはWeb上での名前

住所ではなくWeb上での「名前」を指すURN(Uniform Resource Name)も存在します。

名前とは言っても、対象の名前そのものではなく、Web上で対象を特定するための固有のシリアルナンバーのようなイメージです。

例えば、Amazon等のネットショップで書籍を検索すると、「ISBN」から始まる英数字の羅列という表記を見かけると思います。

あの英数字の羅列が、その書籍に割り振られたWeb上での識別番号であり、意味合い的にはURNとほぼ同じです。

ただ、URNは一般ユーザーの目に触れることはほとんどありません。
とりあえず、URL=Web上の住所、URN=Web側で認識されている名前
と理解しておきましょう。

URIはURLとURNの総称

URI.jpeg
URIは「Uniform Resource Identifier」の略で、Web上にあるあらゆるファイルを認識するための識別子の総称で、URNとURLで構成されています。

1つのファイルの「住所」を示すのがURL、「名前」を示すのがURNで、それらの総称がURIです。
URLとURNはURIの枠組みの中にあるため、URL=URIで、URN=URIと考えても問題ないでしょう。

CRUD操作

操作 メソッド
Create(作成) POST|PUT
Read(読み取り) GET
Update(更新) PUT
Delete(削除) DELETE

movie例

映画の作成(Create)

URI: /movies
HTTPメソッド: POST
このURIにPOSTリクエストを送信すると、新しい映画データが作成されます。リクエストの本文に映画の詳細情報が含まれることが一般的です。
映画の読み取り(Read)

URI: /movies/{movie_id}
HTTPメソッド: GET
{movie_id}は特定の映画の一意の識別子(例: 1、2、3など)を示す動的な部分です。このURIにGETリクエストを送信すると、指定したIDの映画情報を取得します。
映画の更新(Update)

URI: /movies/{movie_id}
HTTPメソッド: PUT
{movie_id}は更新対象の映画の一意の識別子を示します。このURIにPUTリクエストを送信し、更新後の映画情報をリクエストの本文に含めます。
映画の削除(Delete)

URI: /movies/{movie_id}
HTTPメソッド: DELETE
{movie_id}は削除対象の映画の一意の識別子を示します。このURIにDELETEリクエストを送信すると、指定したIDの映画データが削除されます。

ブログ例

メソッド: POST
リクエストの本文(Body)にブログの内容を含めて、新しいブログを作成します。URI(Uniform Resource Identifier)はブログの一覧を示すエンドポイントであることが一般的です。
ブログの読み取り(Read)

メソッド: GET
特定のブログの詳細情報を取得するために、ブログのURIにGETリクエストを送信します。URI内にブログの一意の識別子(IDまたは名前)が含まれていることが一般的です。
ブログの更新(Update)

メソッド: PUT
リクエストの本文に更新後のブログの内容を含めて、既存のブログを更新します。URIは更新対象のブログを指し示す必要があります。
ブログの削除(Delete)

メソッド: DELETE
特定のブログを削除するために、ブログのURIにDELETEリクエストを送信します。URI内に削除対象のブログの識別子が含まれていることが一般的です。

post と PUTの違いの参考URL

https://qiita.com/suin/items/d17bdfc8dba086d36115
簡単な違いの説明は
POSTはリソース名が決まっている。
PUTはリソース名が決まっていない。

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