はじめに
インフラエンジニアとして、自社標準のクラウドストレージサービスにない機能をAPIを利用する形で開発していた際に、「そもそもAPIってなんや?」と疑問を感じました。
そこで、REST APIについて調べたのでまとめました。
REST APIについて
API(Application Programming Interface)とは、ソフトウェア同士が互いに情報をやりとりするのに使用するインターフェースの仕様のことです。
REST APIは、REST(レスト)という設計ルールに基づいて作られたAPIです。
これは、Webシステムを外部から利用するための方法の一つで、Web APIの一種です。
REST APIでは、HTTPという通信方法を使って、GET(取得)、POST(作成)、PUT(更新)、DELETE(削除)などのリクエストでデータを操作します。
4つの設計原則について
REST APIの設計原則は、システムの柔軟性、拡張性、および効率性を確保するために重要な概念です。
以下の4つにまとめられます。
ステートレスなクライアント/サーバプロトコル
REST APIはHTTP技術に基づいています。
まず、送信側(クライアント)は操作方法をHTTPメソッド(GET、POST、PUT、DELETEなど)で示します。
クライアントが必要とするリソース(情報)はURIで表現され、そのリソースに対する操作はHTTPメソッドで指定されます。
次に、受信側(サーバ)は処理結果をHTTPステータスコードで示します。
サーバは受信したHTTPリクエストに対して、処理結果をHTTPステータスコードと共に、JSONやXMLなどのレスポンスフォーマットで応答します。
これにより、クライアント/サーバ間の通信が行われます。
リソースを一意なURIにより識別される
REST APIでは、リソースが存在する位置をURIで示します。
HTTPメソッドで操作方法を表現した統一されたインターフェース
受信側(ユーザー)は、送信側(クライアント)から受信したHTTPメソッドに応じて、自身のリソースに対してCRUDと呼ばれる作成や更新、削除等の操作を行います。
アプリケーション情報と状態遷移の両方を扱えるハイパーメディアの使用
送信側(クライアント)と受信側(ユーザー)は、REST APIを通してデータをやり取りしますが、データを正常に受信するためには、汎用的なデータ形式にし変換する必要があります。
データ形式にはいろいろな種類がありますが、代表的なものとしては、JSON、XML、YAMLなどがあります。
{
Servers:[
{
name:ServerA,
owner:irori,
created:20240501
}
]
}
<Servers>
<Server>
<name>ServerA</name>
<owner>irori</owner>
<created>20240501</created>
</Server>
</Servers>
Servers:
- name:ServerA
owner:irori
created:20240501
今回はここまでです。