現在サービスされているAIを利用していると、APIを利用することになるでしょう。APIを使用する前に、APIをより効果的に活用するためには、APIがどのような役割を果たすのか、APIの基本概念を確認しておくと非常に役立つはずです。
この記事では、APIとデータベース(DB)の概念を分かりやすく明確に説明します。
APIはデータを直接保存するのではなく「やり取りする役割」を果たし、
データを永続的に保管するにはデータベース(DB)と連携させる必要があります。
1. APIはデータを保管するのではなく「やり取りする役割」を担う!
APIは一種のデータ通路(メッセンジャー)です。簡単に言えば、クライアント(ウェブサイト、アプリ)とサーバー(バックエンド)の間でデータをやり取りする役割を果たします。
📌 例:ドラマレビューシステム
APIが実際にどのように動作するかを理解するために、「ドラマレビューシステム」を例に挙げてみましょう。
1️⃣ ユーザーが「私の叔父さん」のレビューを投稿する。
→ ユーザーはウェブサイトでレビューを書き、送信ボタンを押します。
2️⃣ APIがユーザーの要求を受け、データベース(DB)に保存する。
→ APIがデータを受け取り、サーバーのDBに保存します。
3️⃣ 別のユーザーが「私の叔父さんのレビューを見せて!」とリクエストする。
→ APIがDBから該当するドラマレビューを検索し、ユーザーに伝達します。
4️⃣ ユーザーはレビューデータを確認する。
→ APIが伝達したデータをウェブサイトが表示します。
📌 重要な概念!
- ✅ API自体はデータを保存しません!
- ✅ APIはDBからデータを取得したり、DBにデータを挿入する役割のみを担います。
- ✅ データを継続的に保管するにはデータベース(DB)が必要です!
API自体はデータを保存せず、DBから取得または挿入する役割のみを担います。データを継続的に保管するにはDB(データベース)が必要です。DBにはMySQLやMariaDBなどが主に使用されています。
DBはデータを効率的に管理しながらプログラムと連携できるようにするストレージと考えてください。ストレージ管理、つまりDB管理の核心はSQLであると考えてよいでしょう。SQLはリレーショナルデータベースとノンリレーショナルデータベースの2種類に分類できます。データベースに関する内容は以下で詳しく見ていきましょう。
2. APIとデータベース(DB)の接続が必要です。
APIがデータを適切にやり取りするには、必ずデータベース(DB)と接続する必要があります。では、APIとDBが連携して動作する原理を理解しましょう。
APIの基本的な役割(リクエスト&レスポンス)
APIリクエスト(Request) → 「このデータをDBに保存して!」
APIレスポンス(Response) → 「このデータをDBから取得して表示するよ!」
- ✅ データ保存時(ユーザーがレビューを残す時): APIがデータを受け取りDBに保存
- ✅ データを取得するとき(ユーザーがレビューを見る時) : APIがDBからデータを取得し、ユーザーに伝達
例えばNetflixでレビューを書く場合、レビューはデータベースに保存され、ユーザーがレビューを見ようとする時、データベースからデータが取得されてユーザーに提供されるため、他のユーザーが書いたレビューを確認できます。
3. APIがデータを保管するのではなく、DBがデータを保存する!
✔️ 核心概念:APIはデータを「移動」させ、「保管」するのはデータベースが行う。
📌 もしDBがなかったら?
- APIがデータを受け取っても保存する場所がないため、データが消えてしまいます!😱
- 例えば、ユーザーがレビューを残してもDBがなければ、ページを更新するとデータが消えてしまいます。
📌 データを継続的に保存するには?
- APIは単なる「仲介役」であり、データを保管する機能はありません。
- データを継続的に保管するには、必ずAPIとDBを組み合わせて使用する必要があります。
4. データベース(DB)とは?
データベース(DB、Datebase)は、データを永続的に保管するストレージです。
- NAVERのようなウェブサイトやアプリで見るすべてのデータ(会員情報、投稿、コメント、レビューなど)はDBに保存されます。
- APIはこのDBにデータを挿入したり取得したりする役割を担います。
- DBの特徴
- ✅ データを永続的に保管できる
- ✅ 大量のデータを管理しやすい
- ✅ 複数のユーザーが同時にアクセス可能
📌 例:ドラマレビューデータベース
| ID | ユーザー | ドラマタイトル | 星評価 | レビュー内容 |
|---|---|---|---|---|
| 1 | 内容 | 私の叔父さん | ⭐⭐⭐⭐⭐ | 感動的なドラマでした T_T |
| 2 | flow | ミスター・サンシャイン | ⭐⭐⭐⭐☆ | 涙なしでは見られません… |
上記の内容のように、ユーザーがドラマのタイトルに星評価とレビュー内容を記入すると、AP RKデータベースに保存され、後で他のユーザーがレビューを見る際に再び呼び出せるようにする役割を果たします。