Fastly エッジクラウドプラットフォーム

革新的なデジタルソリューション

API とは何ですか?

アプリケーション・プログラミング・インターフェイス(API)は、プログラミング言語やプラットフォームに関係なく、異なるソフトウェアシステム同士が相互に通信できるようにする一連のプロトコルです。API は、構造化された一連のルールを通じて通信することで、コンソールを介する代わりにプログラムでシステムとやり取りできるため、「マシンが他のマシンと対話するのを助ける」と言われることがあります。

また、API を使用すると、新しいソリューションを既存のアプリケーションに統合し、プロセスを自動化することもできます。Web 上には何千もの API が存在し、その多くは無料で使用できます。Postman API Network などの API ディレクトリを利用するか、統合したいサービスまたはプロダクトの Webサイトにアクセスして、利用可能な API があるかどうかを確認できます。

API アーキテクチャには、SOAP(Simple Object Access Protocol)API、GraphQL API、RPC(Remote Procedure Call)API など複数の種類がありますが、このガイドでは最も一般的なもののひとつである Representational State Transfer(REST)に焦点を当てます。REST API のスタイルに準拠した Web サービスは、RESTful API と呼ばれます。RESTful API は HTTP を使用し、Web ページの URL とよく似ています。

API の例は何ですか?

恐らく気付かないうちに、すでに API が実際に使われている場面に遭遇しているはずです。お気に入りのタコスレストランのWebサイトで昼食を注文するところを想像してください。チェックアウト時に、配達先住所を入力する必要があります。検索バーに住所を入力し始めるとほぼ同時に、市、州、郵便番号が自動補完されます。次に支払い情報を入力しようとすると、支払いフィールドが信頼できるモバイル決済サービスによって処理されていることに気付きます。最後に、注文後に、任意のソーシャル・メディア・プラットフォームを使用してロイヤリティプログラムにサインアップするだけで、注文に応じた特典を獲得できます。

住所の自動補完、決済処理、ソーシャルメディアでのサインアップは、いずれも API 統合の例です。これらの各コンポーネントをゼロから作成する代わりに、Webサイトは Google Maps API を使用して配達先住所を簡単に収集し、Square API を使用して Square の決済処理システムと統合し、Facebook API を使用して特典アカウントをすばやく作成できます。

REST API の仕組み

REST API は HTTP リクエストとレスポンスを使用して、インターネット経由で情報を交換します。これには、リクエストを行う Web クライアントとレスポンスを返す API サーバーが共通の言語で通信できるというメリットがあります。メッセージのリクエストとレスポンス自体が、共通の HTTP Web プロトコルを使用します。

REST API には、通常、標準的な Create、Retrieve、Update、Delete(CRUD)データベース機能に沿った一般的なユースケースが多数あります。例えば、Facebook API などを使用して新しい特典アカウントを作成するなど、REST API は作成アクションを実行できます。また、Google Maps API などを使用して住所を取得するなど、データを取得することもできます。 

API リクエストの構造

API リクエストの構造を見ていきましょう。構成要素は5つあります:

ベースURL:エンドポイントのプリフィックス。

エンドポイント: リクエストの送信先を示します。

メソッド: 送信されるリクエストの種類を決定します。

ヘッダー:クライアントとサーバーが相互に通信するのに役立つ情報を提供します。

本文: サーバーに送信する情報が含まれます。

基本を理解したところで、さらに少し詳しく見ていきましょう。

以下は、Google Maps Places API のエンドポイントの例です。

https://maps.googleapis.com/maps/api/place/autocomplete/

このエンドポイントには2つのコンポーネントがあります。ひとつ目はベース URL です;API が提供されるドメインです。この例では、https://maps.googleapis.com がベース URL です。エンドポイントのパスは、リクエストするリソースを決定します。ここでは、Google Maps Places API の Autocomplete という特定のリソースをリクエストしているため、パスは次のとおりです:/maps/api/place/autocomplete

なぜこれが URL によく似ているのか不思議に思われるかもしれませんが、実際に URL だからです。このリクエストは HTTP 経由で行われていることを覚えておいてください。これをブラウザに入力すると、API に応じてさまざまな形式でフォーマットされたレスポンスを含む非常に基本的な HTML ページが表示されます。JSON は最も一般的なレスポンス形式の 1 つです。

しかし、API で実際に何かをするには他のコンポーネントもいくつか必要になります。そのひとつが「メソッド」です。メソッドは、すべてのリクエストに含める必要がある定義済みのキーワードです。最も一般的なメソッドは CRUD のオペレーションに関連する POST(作成)、GET(読み取り)、PUT(更新)、DELETE(削除)です。メソッドは API に実行したい内容を伝え、各エンドポイントは特定のメソッドを期待します。

リクエストヘッダーとは?

API の呼び出しに使用されるもうひとつのコンポーネントがリクエストヘッダーです。リクエストヘッダーは実際には HTTP ヘッダーです。リクエストのコンテキストに関する追加情報を提供します。例えば、リクエストヘッダーがレスポンスに使用する優先言語を示す場合があります。ほとんどの API では、クライアントに認証情報を提供する認証ヘッダーも必要とされます。これらは、API を使用する人が正当であることを示す個人証明書のようなもので、API のセキュリティの確保に役立ちます。

メソッドによっては、リクエストの本文で追加データを定義する必要がある場合があります。例えば、POST メソッドを使用して何かを作成する場合、作成時に入力する必要があるデータフィールドが存在することがあります。

例として、特典アカウントに登録するユーザーのケースを見てみましょう。ユーザーは、アカウントを作成するために、お客様のWebサイト上の特定のフィールドに入力します。バックエンドでは、API が呼び出され、ユーザーが入力した詳細がリクエストの本文で使用されます。

{
"first_name": "Kris",
"last_name": "Owner",
"email": "krisowner@email.com",}

API の呼び出し

API リクエストの構成要素を理解したところで、どのように呼び出せばよいのでしょうか?API を即座にテストしてレスポンスを確認するには、curl または Postman などのアプリケーションを介してリクエストを送信する方法があります。

例えば、特定のユーザーアカウントの詳細を取得したいとします。レスポンスは次のようになります。

HTTP/1.1 200 OK
Content-Type: application/json
{
  "comment": "",
  "created_at": "2020-04-27T19:40:49+00:00",
 "deleted_at": null,
  "customer_id": "x4xCwxxJxGCx123Rx5xTx",
  "first_name": "Kris",
  "last_name": "Owner",
  "email": "krisowner@email.com",}

返されるレスポンスは API と実行したリクエストによって異なります。 

これをさらに細かく見てみましょう。最初の行にはステータスが含まれており、この場合は成功を示す 200 です。次の行の Content-Type ヘッダーは、リクエストした情報の形式を示します。この場合は JSON です。最後に、レスポンスの本文にはユーザーの詳細が含まれます。

ここでは、API を呼び出してシンプルなデータ取得を実行する方法をご紹介しました。アプリケーションのコンソール経由でログインすると、恐らく同じ情報を取得できるでしょう。API を呼び出す、より一般的なユースケースは、リクエストをアプリケーションに組み込み、レスポンスで受け取ったデータを使用して何かを実行することです。

API のセキュリティをどのように確保しますか?

API に関しては、セキュリティが極めて重要です。機密データを安全に保ち、許可されたユーザーのみが API にアクセスできるようにする必要があります。上述の認証ヘッダーに加え、API キーはクライアントを認証し、適切なユーザーのみがアクセスできるようにする一般的な方法のひとつです。OAuth(Open Authorization)は別の選択肢です。これは、ログイン資格情報を共有することなく、ユーザーがサードパーティのアプリケーションに自分のリソースへのアクセスを許可できる標準プロトコルです。特定の時間枠内で処理できるリクエスト数のレート制限も、不正利用を防ぎ、API の円滑な運用を維持するうえで重要です。トランジット中のすべての API 通信の安全を維持し、機密情報が不適切な人物の手に渡るのを防ぐために、HTTPS 暗号化は不可欠です。

API ドキュメントが重要な理由は何ですか?

開発者に API を効果的に使用してもらうには、明確で包括的なドキュメントが必要です。これは、API を最大限に活用する方法を理解するのに役立つロードマップのようなものです。ドキュメントでは、エンドポイント、リクエストとレスポンスの形式、認証要件など、重要な詳細をすべて網羅し、使い始めるためのコードスニペットも提供する必要があります。また、エラー処理、レート制限、および API に伴う特定のベストプラクティスや制約に関する情報を含めることもお勧めします。優れた API ドキュメントは学習曲線を緩やかにし、開発者が手間なく API をアプリケーションにシームレスに統合できるようにします。

API のバージョン管理とは?

API が成長し進化するにつれて、バージョン管理がプロセスにおいて重要になります。既存の統合に支障をきたすことなく新しい機能の追加や変更を実施できる必要があります。これを行う 1 つの方法は、API の URL にバージョン番号を含めることです。たとえば、/api/v1/resources のようにします。こうすることで、どのバージョンの API が使用されているかが明確になります。もう 1 つの方法は、リクエストヘッダーでバージョン管理を行うことで、クライアントが必要なバージョンを指定できるようにすることです。重要なのは、確かなバージョン管理戦略を導入し、変更があれば開発者に確実に伝えることです。重大な変更を導入する場合は、移行ガイドを必ず提供するようにしてください。

API テストが必要な理由

API のテストは完全なヘルスチェックを実施するようなものです。信頼性が高く、パフォーマンスが良好で、必要な仕様に準拠していることを確認する必要があります。API の個々のコンポーネントをテストし、各関数またはメソッドが期待どおりに動作することを確認できるユニットテストは、API テストの最初のステップとして最適です。

もうひとつの重要なステップとして、API のさまざまな部分がうまく連携して動作し、必要な結果が得られることを保証する統合テストが挙げられます。 

API を徹底的にテストしたい場合は、負荷テストの実行も有効な手段です。負荷テストは、パフォーマンスのボトルネックを見つけ、API が予想されるトラフィック量を処理できることを確認するのに役立ちます。Postman、SoapUI、JMeter など、API テストを容易にし、潜在的な問題を早期に発見するのに役立つ自動テストツールやフレームワークが数多くあります。

API のライフサイクル管理とは何ですか?

API をライフサイクル全体にわたって管理することが、長期的な成功と保守性の確保において重要です。API ゲートウェイはクラブの用心棒のような役割を果たします。つまり、すべての API リクエストに対して単一のエントリーポイントを提供し、認証、レート制限、リクエストルーティングなどの重要なタスクを処理します。 

バージョン管理と非推奨(API の廃止)に関する戦略も、API のライフサイクルにおいて重要です。API の新しいバージョンを導入する際には、明確な移行パスを提供し、古いバージョンを段階的に廃止する予定時期を開発者に伝えるようにしてください。また、API を廃止する必要がある場合は、開発者が統合を更新できるよう、十分に事前通知してください。少しの計画とコミュニケーションが、API を円滑に運用し、ユーザーへの大きな混乱を回避するうえで大いに役立ちます。

Fastly API の活用方法

Fastly API は、Fastly コンソール を通じて利用可能なすべての機能へのアクセスを提供する RESTful API です。

API を使用すると、既存のワークフローとの統合や、頻繁に繰り返される面倒なプロセスの自動化など、最も都合のよい方法で Fastly サービスやアカウントに関連するオブジェクトを操作できます。例えば、Fastly のリアルタイム分析 API を使用して、Fastly の分析データをカスタム分析ダッシュボードに統合できます。また、自動パージプロセスを設定することもできます。可能性は、想像力(およびプログラミング技術)によってのみ制限されます。

Fastly の API について詳しくは、API リファレンスドキュメントをご覧ください。何よりも、Fastly API は Fasly アカウント。で無料でご利用いただけます。 

Fastly API セキュリティの詳細

詳細情報

Fastly を試してみませんか?

ぜひご連絡ください