ガイド

APIとは?アプリ開発者でない人のための入門ガイド

API(Application Programming Interface)は、あるソフトウェアが別のソフトウェアにデータを求めたり、何かをさせたりするための決まった方法です。アプリは「明日の予約を見せて」「このカードに20ユーロを請求して」「このテキストを要約して」といったリクエストを合意された形式で送り、相手のシステムは構造化されたレスポンスを返します。APIは、アプリの各部分が互いに通信する仕組みであり、アプリが決済、メール、地図、AIといった外部サービスを使う仕組みでもあります。

AIで作る場合になぜAPIが重要なのか

役に立つアプリのほとんどは、APIを通じて通信する部品で作られています。

  • アプリの内部では、 ブラウザ上の画面が、自分のバックエンドのAPIを呼び出してデータを読み込んだり保存したりします。
  • アプリの外部では、 バックエンドが他社のAPIを呼び出します。決済を受け付けるStripe、領収書を送るメールプロバイダー、テキストを生成するAIモデルのプロバイダーなどです。

AIビルダーに「支払いを受け付けて」「AIの要約を追加して」と頼むと、実際にはAPIを呼び出すコードを書いてくれています。基本を知っておくと、AIがあなたに何を必要とするか(通常は、そのサービスのアカウントとAPIキー)、どこでうまくいかなくなりうるか、そしてどれくらい費用がかかるかを理解しやすくなります。

身近なたとえ

レストランを考えてみてください。あなたは厨房に入って料理をするわけではありません。メニューを読み、キッチンが理解できる形で注文を伝え、ウェイターが料理を運んでくるか、「売り切れです」と伝えてきます。

  • メニュー はAPIのドキュメントです。何を頼めるか、どのように頼むかの一覧です。
  • ウェイター がAPIです。リクエストが入り、レスポンスが出ていく、合意された唯一の方法です。
  • 厨房 は相手のシステムです。内部の仕組みを知る必要はありません。
  • あなたの注文 がリクエストで、届いた料理 がレスポンスです。

メニューが変わらない限り、厨房は、オーブンやスタッフを変えてもあなたには影響しません。これがAPIの本当の価値です。どちらのシステムも、相手がどのように作られているかを知らなくても、一緒に働けるのです。

Webリクエストの仕組み

あなたが出会うAPIのほとんどは、ブラウザも使っているHTTPで動くWeb APIです。それぞれのリクエストには、いくつかの部分があります。

部分内容例
メソッド行う操作の種類GET(読み取り)、POST(作成)
URL / エンドポイント操作の対象のアドレスhttps://api.example.com/bookings
ヘッダー追加の情報。誰であるかを含むAuthorization: Bearer <your key>
本文作成や更新のために送るデータ{"name": "Lena", "time": "14:00"}

そして、それぞれのレスポンスには次のものがあります。

部分内容例
ステータスコード結果を示す数字200 OK、201 作成済み、404 Not Found
本文返ってきたデータ。通常はJSON{"id": 5001, "status": "confirmed"}

JSON(JavaScript Object Notation)は、波括弧の中に名前と値を並べる簡単なテキスト形式です。Web APIがデータをやり取りする標準的な方法です。

REST:最もよく使われる方式

RESTは、Web APIを設計するための広く使われた決まりごとです。それぞれの種類のものに独自のURLがあり、標準的なメソッドが、それに対して何をするかを示します。予約アプリのREST APIは、次のような形になるかもしれません。

メソッドエンドポイント役割
GET/api/bookings予約の一覧を取得
GET/api/bookings/50011件の予約を取得
POST/api/bookings新しい予約を作成
PATCH/api/bookings/5001予約の一部、たとえば時間を変更
DELETE/api/bookings/5001予約をキャンセル(削除)

PUT もありますが、慣習的にはレコード全体を置き換えるのに対し、PATCH は送ったフィールドだけを変更します。

よく見るステータスコードは次のとおりです。

コード意味
200 / 201成功 / 作成済み
400不正なリクエスト。送った内容に誤りや不足がある
401認証されていない。有効なログインもキーもない
403禁止。誰かは分かっているが、この操作は許可されていない
404見つからない
429リクエストが多すぎる。レート制限に達した
500サーバー側でエラーが起きた

アプリが壊れたとき、ステータスコードは多くの場合、最も速い手がかりになります。決済プロバイダーからの 401 は、通常、APIキーがないか誤っていることを意味し、429 は呼び出しが多すぎることを意味します。

RESTだけがスタイルではありません。GraphQLやRPC形式のAPIもありますが、多くのサービスやAIで作られたバックエンドで使われているのはRESTです。

具体例:予約の確認

サロンの予約アプリで顧客がヘアカットを予約するとき、1〜2秒の間に複数のAPI呼び出しが行われるかもしれません。

  1. ブラウザ上の予約ページが、サービス、時間、顧客の詳細を含む POST /api/bookings をバックエンドに送ります。
  2. バックエンドは、その枠が空いているかを確認し、予約をデータベースに保存して、201 Created を返します。
  3. バックエンドは、秘密のキーを使って、メールプロバイダーのAPIを呼び出します。「この確認メールを lena@example.com に送って」という内容です。
  4. 手付金が必要なら、バックエンドは決済プロバイダーのAPIに、チェックアウトのセッションを作成するように頼み、顧客をそこに案内します。
  5. あとで決済プロバイダーが、支払いが成功したことを あなたの アプリに伝えるために呼び出してきます。この逆方向の呼び出しが Webhook です。

最初の2ステップは、フロントエンドとバックエンドの間にある、あなた自身のAPIです。ステップ3から5は、外部サービスのAPIです。

よく使われる用語の説明

用語意味
エンドポイントAPIが応答する、特定の1つのURL。
APIキーアプリをサービスに対して識別するための秘密の文字列。パスワードと同じように扱う。
認証キー、トークン、ログインなどで、呼び出し元が誰かを証明すること。認証とは をご覧ください。
レート制限一定期間に行えるリクエストの上限。
SDK特定のAPIを呼び出しやすくする、出来合いのコードライブラリ。
ドキュメント「メニュー」。どのエンドポイントがあり、何を受け付け、何を返すか。
サンドボックス / テストモード実際のお金や実データを使わずにテストできる、サービスのバージョン。
Webhook何かが起きたときに、別のサービスからアプリに届く呼び出し。

よくある間違いと誤解

  • 秘密のキーをフロントエンドに入れる。 ブラウザで動くコードに入っているものは、そのサイトを訪れた誰でも見られます。秘密のキーは必ずサーバー上に、環境変数またはシークレットとして置いてください。
  • チャットにキーを貼り付ける。 チャットの履歴は保存されることがあります。代わりに、ビルダーのシークレット機能を使い、漏れたキーは必ず再発行(ローテーション)してください。
  • APIは無料だと思い込む。 多くのAPIは、リクエストごと、または使用量ごとに課金します。AIモデルのAPIはトークン単位で課金されます。料金を確認し、支出の上限を設定してください。LLMのAPIの使い方 をご覧ください。
  • 失敗を想定しない。 外部のサービスは停止したり、タイムアウトしたり、上限に達したりします。分かりやすいエラーメッセージと、再試行の仕組みを頼みましょう。
  • ブラウザを信用しすぎる。 自分のAPIは、権限を自分でチェックする必要があります。ボタンを隠しても、エンドポイントを直接呼び出されるのは防げません。
  • テスト中に本番のキーを使う。 本番公開の準備ができるまで、テストモードのキーを使いましょう。

AIビルダーへの頼み方

  • 「このアプリはどの外部APIを使っていますか? それぞれの費用はいくらですか?」
  • 「決済のAPIはサーバーからだけ呼び出してください。キーは環境変数から読み込んでください。」
  • 「私たちのAPIにあるすべてのエンドポイントを一覧にして、それぞれの役割と、誰が呼び出せるかを教えてください。」
  • 「予約を更新または削除する前に、ログインしているユーザーがその予約の持ち主であることを、サーバー側で確認してください。」
  • 「メールAPIが失敗しても予約は保存し、エラーをログに残してください。」
  • 「今のところは、提供元のテストモードを使ってください。」

MythexでのAPI

Mythexは、自分のAPIを作ることができます。ウェブアプリの一部として作ることも、フロントエンドと並んで動くNode、Python(FastAPI)、C#、Javaの独立したバックエンドとして作ることもできます。また、外部サービスを呼び出すコードも書けます。APIキーは、チャットではなくプロジェクトのシークレットとして追加します。そうすれば、プレビューでも公開後でも、アプリから使えるようになります。ドキュメントには、任意のAPIを連携する と REST APIバックエンドを作る のレシピがあります。

よくある質問

APIとは簡単に言うと何ですか?

API(Application Programming Interface)は、あるソフトウェアが別のソフトウェアにデータを求めたり、何かをさせたりするための決まった方法です。アプリは合意された形式でリクエストを送り、相手のシステムは天気データ、決済の結果、AIが生成した返信などのレスポンスを返します。

REST APIとは何ですか?

REST APIは、Web APIでよく使われる方式です。予約や顧客など、それぞれの種類のものにURLがあり、標準的なHTTPメソッドを使います。読み取りはGET、作成はPOST、更新はPUTまたはPATCH、削除はDELETEです。データは通常JSONで返ってきます。

APIキーとは何ですか?どこに保管すべきですか?

APIキーは、アプリをサービスに対して識別するための秘密の文字列で、多くの場合、お金を使ったりデータにアクセスしたりすることを許可します。環境変数やサーバー上のプロジェクトのシークレットに保管してください。ブラウザで動くコードや、公開リポジトリには決して入れないでください。

APIとWebhookの違いは何ですか?

APIでは、アプリが必要なときに別のサービスに何かを頼みます。Webhookでは、何かが起きたときに別のサービスがアプリを呼び出します。たとえば、決済プロバイダーが支払いの成功を通知してくるケースです。

Mythex · Pricing · AIでなんでも作ろう · ウェブサイト・アプリのテンプレート · Mythexを比較 · AIアプリ開発用語集 · AIアプリ開発の無料ツール · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)