はじめに
エンジニア歴1年未満の筆者が、APIという単語の意味をあまり理解せずに、これまでやり過ごしてきましたが、もう少し理解を深めようと、学んだ内容をまとめたブログです。
APIとは何か?
この内容は少し調べると様々な記事などが出てきますが、ほとんどが「ソフトウェア同士がコミュニケーションをとるためのインターフェース」という説明だと思います。正直この文章で私はあまりイメージができませんでした。
具体的な例を出すと、スマホのアプリで天気予報を確認する際、そのアプリはAPIを通じて天気情報を取得しているということです。
この例だとイメージが湧くのではないでしょうか。
APIの仕組み
APIの簡単なイメージはできたので、次に仕組みについて学んでいきます。
クライアントとサーバーの関係
APIの仕組みを理解するためには、まず「クライアント」と「サーバー」の関係を理解することが重要です。この2つは、インターネット上のコミュニケーションにおいて基本的な役割を果たしています。
クライアントとは
クライアントとは、ユーザーが直接操作するデバイスやアプリケーションのことを指します。具体的には、ウェブブラウザ(SafariやGoogle Chromeなど)、スマホアプリ(天気予報アプリ)などがクライアントにあたります。クライアントは、ユーザーの要求(リクエスト)をサーバーに送信し、その結果(レスポンス)をユーザーに表示します。
サーバーとは
サーバーは、クライアントからのリクエストを受け取り、それに応じて必要なデータやサービスを提供するコンピュータやシステムのことです。
天気予報アプリの例では、サーバーは天気情報を保管している場所に当たります。
クライアントとサーバーのやり取りの流れ
- リクエストの送信: クライアント(天気予報アプリ)がサーバーに対して「京都の天気を教えて」というリクエストを送ります。
- リクエストの受信と処理: サーバーはリクエストを受け取り、データベースから京都の最新の天気情報を検索します。
- レスポンスの送信: サーバーは天気情報をクライアントに返します。
- レスポンスの受信と表示: クライアントは受け取った天気情報をユーザーに表示します。
このやり取りでのAPIの役割
このように、クライアントとサーバーはリクエストとレスポンスを通じてやり取りを行います。このやり取りを仲介するのがAPIです。APIは、クライアントがサーバーにリクエストを送る際のルールや形式を定めているため、異なるシステムやアプリケーション間でのコミュニケーションがスムーズに行えるようになります。
APIの実例
公開されているAPI
Qiita API
API経由で記事の検索・更新などができる。
Maps JavaScript API
Google mapsで特定の場所にピンを立てて表示させられるAPI
YouTube Data API
動画のアップロード、チャンネルの設定などがAPI経由でできる。
APIを自分で作成できるサービス
Amazon API Gateway
公式ドキュメントからの引用
フルマネージド型サービスの Amazon API Gateway を利用すれば、デベロッパーは規模にかかわらず簡単に API の作成、公開、保守、モニタリング、保護を行えます。API は、アプリケーションがバックエンドサービスからのデータ、ビジネスロジック、機能にアクセスするための「フロントドア」として機能します。API Gateway を使用すれば、リアルタイム双方向通信アプリケーションを実現する RESTful API および WebSocket API を作成することができます。API Gateway は、コンテナ化されたサーバーレスのワークロードやウェブアプリケーションをサポートします。
つまりAmazon API GatewayはAPIの作成、様々な管理ができるサービスということです。またフルマネージドサービスなので、サーバーの管理などは不要です。
まとめ
API(Application Programming Interface)はその名の通りアプリケーションやプログラムをつなぐものということです。
ユーザーとして使用する場合にはあまり意識することはないと思いますが、実はよく使っているものだということがわかりました。
奥深いものだということが調べていてわかりましたので、これからもっと深いところまで理解できるように学んでいきたいです!