サーバー、データベース、インフラに関するトピックス
■第13話:APIの基礎知識
(最終更新日:2023.09.24)
(絵が小さい場合はスマホを横に)
「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で様々な機能を利用できる
2.APIのメリット
APIのメリッは、1で挙げたように、それを提供している既存のサービスやデータを利用して、
新たなアプリケーションを迅速に開発できることだ。
つまり、APIによって異なるシステム間でのデータ交換が可能となり、システムの連携や統合が実現する。
先ほどの例で挙げれば、自社の商品を販売するカート機能を実装したら、
それを決済サービスのAPIと連携して、ECサイトを構築するという具合だ。
もちろん、自社内のシステムでもAPI連携を行い、スムースにデータや機能の連携を行うことができる。
会計システム、人事システム、生産管理システムなど、同一のソフトウェアでなくとも、
APIを上手く利用すればシームレスな連携が可能だ。
他にも様々なところでAPI連携は使われている。
Webサイトを閲覧する際、その視点を持ってみてみよう。きっと新たな気づきがあるはずだ。
3.RESTful API
RESTful APIは、Webサービスの設計モデルであり、以下の原則に従う。 (原文では4つの原則として書かれていないようだが、分かりやすさのためにこちらで説明する)
- 統一インターフェース:HTTPで定義されている "GET"、"POST"、"PUT"、"DELETE" などのメソッドを使って、データ操作を命令する。
- アドレス可能性:全ての情報はURIで表現されるユニークなアドレスを持つ。
- 接続性:やりとりをする情報の中にハイパーリンクを含められる。RESTfulなシステム同士なら、情報連携が簡単にできる。
- ステートレス:各リクエストは状態や依存関係を持たず、他のリクエストとは独立している。1回のやりとりで完了する。 ただし、実際にはCookieなどを利用して、クライアント側でセッション状態を管理している。
原則に当てはめた、具体的なやりとりは以下のようになる。 上記リストの1~4の原則が①~④に当てはまる。
RESTful APIの4原則
4.実例と用語の説明
RESTful APIは、上記の特徴を持つおかげで、拡張性、可読性に優れたAPIとなっている。 ここで、RESTful APIで使用する「HTTPメソッド」「ステータスコード」「エンドポイント」について説明する。 HTTPメソッドは以下の通りである。
- GET:情報の取得
- POST:新しい情報の作成
- PUT:既存の情報の更新
- DELETE:情報の削除
■HTTPメソッド
ステータスコードに関しては、様々なものがあるが、 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