Web制作、Web開発の歩き方

サーバー、データベース、インフラに関するトピックス

■第13話:APIの基礎知識

(最終更新日:2023.09.24)

APIのイメージ
この記事は5分で読めます!
(絵が小さい場合はスマホを横に)

「APIってなに?」

普段、色んなところでAPIって聞くけど、実際APIとは何なのか分からない。そんな方も多いと思う。 API自体は情報であったり、機能を共有する役割を果たすのだが、言葉だけではピンと来ない。 ここでは、概念や具体例を交えながら、APIについての基本的な知識やメリットを説明していく。 そして、最もよく使われるWeb APIである、RESTful APIについて詳しく見ていこう。

API(Application Programming Interface)に関して知識を深めることは、現代のソフトウェア開発において極めて重要だ。


1.APIとは

APIとは、異なるソフトウェア間での通信を可能にするインターフェースである。 APIを利用することで、開発者は1つのアプリケーションから他のアプリケーションの機能やデータを利用できる。

APIは、Web API(例えば、Stripeなどの決済サービスや地図アプリの利用など) が最も有名だが、他にもWin32APIなど別の種類のAPIも存在する。異なるソフトウェア間の橋渡しなので、 Web以外にも様々なパターンが考えられるが、ここではAPIと言えば、Web APIのことを示すこととする。

APIは、プログラムが互いに通信するための規約やルールを定義する。 APIを利用することで、開発者はプラットフォームやサービスの内部の詳細を知らなくても、その機能を利用することができる。 これの何が良いかと言うと、開発者は内部の情報を公開せずに他者に自分のサービスや機能を使ってもらうことができる。 一方、利用者はルールを把握するだけで、簡単に他者のサービスを利用することができることが良い点だ。

自分で決済アプリを作るとなると、中身のロジックを実装するのが大変な上、セキュリティ面の確保も物凄く大変になる。 それが、APIを利用すると、1日で実装することが可能になる。ここが大きなメリットである。

APIの活用

APIで様々な機能を利用できる



2.APIのメリット

APIのメリッは、1で挙げたように、それを提供している既存のサービスやデータを利用して、 新たなアプリケーションを迅速に開発できることだ。 つまり、APIによって異なるシステム間でのデータ交換が可能となり、システムの連携や統合が実現する。 先ほどの例で挙げれば、自社の商品を販売するカート機能を実装したら、 それを決済サービスのAPIと連携して、ECサイトを構築するという具合だ。 もちろん、自社内のシステムでもAPI連携を行い、スムースにデータや機能の連携を行うことができる。 会計システム、人事システム、生産管理システムなど、同一のソフトウェアでなくとも、 APIを上手く利用すればシームレスな連携が可能だ。

他にも様々なところでAPI連携は使われている。 Webサイトを閲覧する際、その視点を持ってみてみよう。きっと新たな気づきがあるはずだ。

動作検証
3.RESTful API

RESTful APIは、Webサービスの設計モデルであり、以下の原則に従う。 (原文では4つの原則として書かれていないようだが、分かりやすさのためにこちらで説明する)

  1. 統一インターフェース:HTTPで定義されている "GET"、"POST"、"PUT"、"DELETE" などのメソッドを使って、データ操作を命令する。
  2. アドレス可能性:全ての情報はURIで表現されるユニークなアドレスを持つ。
  3. 接続性:やりとりをする情報の中にハイパーリンクを含められる。RESTfulなシステム同士なら、情報連携が簡単にできる。
  4. ステートレス:各リクエストは状態や依存関係を持たず、他のリクエストとは独立している。1回のやりとりで完了する。 ただし、実際にはCookieなどを利用して、クライアント側でセッション状態を管理している。

原則に当てはめた、具体的なやりとりは以下のようになる。 上記リストの1~4の原則が①~④に当てはまる。

RESTful APIの4原則

RESTful APIの4原則


4.実例と用語の説明

RESTful APIは、上記の特徴を持つおかげで、拡張性、可読性に優れたAPIとなっている。 ここで、RESTful APIで使用する「HTTPメソッド」「ステータスコード」「エンドポイント」について説明する。 HTTPメソッドは以下の通りである。

    ■HTTPメソッド

  1. GET:情報の取得
  2. POST:新しい情報の作成
  3. PUT:既存の情報の更新
  4. DELETE:情報の削除

ステータスコードに関しては、様々なものがあるが、 200は成功、400はクライアント側のエラー、500はサーバー側のエラーとなる。 通常、Webサイトを閲覧するときのエラーコード等と一緒で、APIリクエストの結果を返す。

エンドポイントはAPIが提供するリソースへのURIである。 エンドポイントを利用して、開発者はAPIのリソースにアクセスできる。

ちなみに、Web APIのリソースとして使われるものにXMLとJSONがあるが、 今はほとんどJSONで行われるため、ここではJSONを用いたやりとりを指すこととする。


5.まとめ

APIは、ソフトウェア開発において中心的な役割を果たす。 異なるアプリケーションやシステム間の効率的な連携を実現し、開発の生産性を向上させるために、 APIの基本的な知識やメリット、RESTful APIの原則を理解することは重要だ。

このあたりの知識は、別の文献を通して繰り返し学習したい。 実践でも必ず役に立つはずだ。


▼参考図書、サイト

 「Web API The Good Parts」 オライリージャパン オーム社
   Wiz テックブログ  Hatena Blog