API とは

API は、2 つのソフトウェアコンポーネントが一連の定義とプロトコルを使用して相互に通信できるようにするメカニズムです。例えば、気象局のソフトウェアシステムには、毎日の気象データが含まれています。お使いの携帯電話の天気アプリは、API を介してこのシステムと「通信」し、携帯電話に毎日の天気の更新情報を表示します。

API の略

API は、アプリケーションプログラミングインターフェイスの略です。API のコンテキストでは、アプリケーションという言葉は、明確な機能を備えたソフトウェアを指します。インターフェイスは、2 つのアプリケーション間のサービスのコントラクトと考えることができます。このコントラクトは、2 つアプリケーションがリクエストとレスポンスを使用して相互に通信する方法を定義します。その API ドキュメントには、デベロッパーがこれらのリクエストとレスポンスをどのように構築するかについての情報が含まれています。

API の機能

API アーキテクチャは通常、クライアントとサーバーの観点から説明されます。リクエストを送信するアプリケーションはクライアントと呼ばれ、レスポンスを送信するアプリケーションはサーバーと呼ばれます。したがって、天気の例では、気象庁の天気データベースがサーバーであり、モバイルアプリケーションがクライアントです。 

API が作成された時期と理由に応じて、API が機能する方法が 4 つあります。

SOAP API 

この API は、Simple Object AccessProtocol を使用します。クライアントとサーバーは、XML を使用してメッセージを交換します。これは柔軟性の低い API であり、以前人気がありました。

RPC API

この API は、リモートプロシージャコールと呼ばれます。クライアントはサーバー上である機能 (またはプロシージャ) を実行完了し、サーバーは出力をクライアントに送り返します。

Websocket API

Websocket API は、JSON オブジェクトを使用してデータを渡すもう 1 つの最新の Web API 開発です。WebSocket API は、クライアントアプリとサーバー間の双方向通信をサポートします。サーバーは接続されたクライアントにコールバックメッセージを送信できるため、REST API よりも効率的です。

REST API

REST API は、今日ウェブ上で最も人気があり柔軟な API です。クライアントはリクエストをデータとしてサーバーに送信します。サーバーはこのクライアント入力を使用して内部機能を開始し、出力データをクライアントに返します。以下で、REST API について詳しく見ていきましょう。

REST API とは

REST は Representational State Transfer の略です。REST は、クライアントがサーバーデータにアクセスするために使用できる GET、PUT、DELETE などの一連の関数を定義します。クライアントとサーバーは、HTTP を使用してデータを交換します。

REST API の主な機能は、ステートレスです。ステートレスとは、サーバーがリクエスト間でクライアントデータを保存しないことを意味します。サーバーへのクライアントリクエストは、ウェブサイトにアクセスするためにブラウザに入力する URL に似ています。サーバーからのレスポンスはプレーンデータであり、ウェブページの一般的なグラフィックレンダリングはありません。

Web API とは

Web API または Web Service API は、ウェブサーバーとウェブブラウザ間のアプリケーション処理インターフェイスです。すべてのウェブサービスは API ですが、すべての API がウェブサービスであるとは限りません。REST API は、上記で説明した標準のアーキテクチャスタイルを使用する特殊なタイプの Web API です。

歴史的に、API はワールドワイドウェブの前に作成されていたため、Java API や Service API など、API に関するさまざまな用語が存在します。最新の Web API は REST API であり、これらの用語は同じ意味で使用できます。

API 統合とは

API 統合は、クライアントとサーバー間のデータを自動的に更新するソフトウェアコンポーネントです。API 統合の例としては、電話の画像ギャラリーからクラウドへの自動データ同期や、別のタイムゾーンに移動したときにノートパソコンで日時が自動的に同期される場合などが挙げられます。企業は API 統合を使用して、多くのシステム機能を効率的に自動化することもできます。

 

REST API の利点

REST API の主な利点には、次の 4 つがあります。

1.統合 

API は、新しいアプリケーションを既存のソフトウェアシステムと統合するために使用されます。これにより、各機能を最初から作成する必要がなくなるため、開発速度が向上します。API を使用して、既存のコードを活用できます。

2.イノベーション 

新しいアプリの登場により、業界全体が変化する可能性があります。企業は迅速に対応し、革新的なサービスの迅速な展開をサポートする必要があります。コード全体を書き直すことなく、API レベルで変更を加えることでこれを行うことができます。

3.拡張

API は、さまざまなプラットフォームでクライアントのニーズを満たすためのユニークな機会を企業に提供します。例えば、地図 API を使用すると、ウェブサイト、Android、iOS などを介して地図情報を統合できます。どの企業も、無料または有料の API を使用して、内部データベースへの同様のアクセス権を付与できます。

4.メンテナンスのしやすさ

API は、2 つのシステム間のゲートウェイとして機能します。各システムは、API が影響を受けないように内部変更を行う必要があります。このように、一方の当事者による将来のコード変更は、他方の当事者に影響を与えません。

さまざまなタイプの API

API は、アーキテクチャと使用範囲の両方に沿って分類されます。API アーキテクチャの主なタイプについては既に説明したので、使用範囲を見てみましょう。

プライベート API

プライベート API は企業の内部にあり、企業内のシステムとデータを接続するためにのみ使用されます。

パブリック API 

パブリック API は一般に公開されており、誰でも利用できます。このタイプの API に関連する承認とコストがある場合とない場合があります。

パートナー API 

パートナー API は、企業間パートナーシップを支援するために許可された外部デベロッパーのみがアクセスできます。

複合 API 

複合 API は、2 つ以上の異なる API を組み合わせて、複雑なシステム要件や動作に対処します。 

API エンドポイントとは、およびそれが重要な理由

API エンドポイントは、API 通信システムの最後のタッチポイントです。API エンドポイントには、サーバーの URL、サービス、およびシステム間で情報が送受信されるその他の特定のデジタルロケーションが含まれます。API エンドポイントは、次の 2 つの主な理由から企業にとって重要です。 

1.セキュリティ

API エンドポイントは、システムを攻撃に対して脆弱にします。API モニタリングは、誤用を防ぐために重要です。

2.パフォーマンス

API エンドポイント、特にトラフィックの多いエンドポイントは、ボトルネックを引き起こし、システムパフォーマンスに影響を与える可能性があります。

REST API を保護する方法

すべての API は、適切な認証とモニタリングによって保護する必要があります。REST API を保護する主な方法には、次の 2 つがあります。

1.認証トークン 

認証トークンは、ユーザーが API コールを行うことを承認するために使用します。認証トークンは、ユーザーが自ら主張している本人であること、およびその特定の API コールに対するアクセス権を持っていることを確認します。例えば、E メールサーバーにログインすると、E メールクライアントは安全なアクセスのために認証トークンを使用します。

2.API キー 

API キーは、API コールを行うプログラムまたはアプリケーションを検証します。アプリケーションを識別し、特定の API コールを行うために必要なアクセス権がアプリケーションにあることを確認します。API キーはトークンほど安全ではありませんが、使用状況に関するデータを収集するために API をモニタリングできます。別のウェブサイトにアクセスすると、ブラウザの URL に長い文字列と数字が含まれていることに気付いたかもしれません。この文字列は、ウェブサイトが内部 API コールを行うために使用する API キーです。

API を作成する方法

他のデベロッパーが協力したいと考え、信頼できる API を構築するには、デューデリジェンスと努力が必要です。高品質の API 設計に必要な 5 つのステップは次のとおりです。

1.API を計画する 

OpenAPI などの API 仕様は、API 設計の青写真を提供します。事前にさまざまなユースケースを検討し、API が現在の API 開発標準に準拠していることを確認することをお勧めします。

2.API を構築する

 API 設計者は、定型コードを使用して API のプロトタイプを作成します。プロトタイプがテストされると、デベロッパーはそれを内部仕様にカスタマイズできます。

3.API をテストする  

API テストはソフトウェアテストと同じであり、バグや欠陥を防ぐために行う必要があります。API テストツールを使用して、サイバー攻撃に対する API の強度テストを行うことができます。

4.API を文書化する  

API は一目瞭然ですが、API ドキュメントは使いやすさを向上させるためのガイドとしての役割を果たします。さまざまな機能とユースケースを提供する十分に文書化された API は、サービス指向アーキテクチャでより一般的になる傾向があります。

5.API を市場投入する 

Amazon が小売業のオンラインマーケットプレイスであるように、API マーケットプレイスは、デベロッパーが他の API を売買するために存在します。API を掲載すると、API を収益化できます。

API テストとは

API テスト戦略は、他のソフトウェアのテスト方法と似ています。主な焦点は、サーバーのレスポンスの検証です。API テストには次のものが含まれます。

  • パフォーマンステストのために API エンドポイントに複数のリクエストを行うテスト。
  • ビジネスロジックと機能の正確さをチェックするために単体テストを作成して行うテスト。
  • システム攻撃をシミュレートすることによるセキュリティテスト。 

API ドキュメントの作成方法

包括的な API ドキュメントの作成は、API 管理プロセスの一部です。API ドキュメントは、ツールを使用して自動生成することも、手動で作成することもできます。いくつかのベストプラクティスは次のとおりです。

  • シンプルで読みやすい英語で説明を記述すること。ツールによって生成されたドキュメントは、言葉が多くなり、編集が必要になる場合があります。
  • コードサンプルを使用して機能を説明すること。
  • 正確で最新のドキュメントを維持すること。
  • 初心者向けの記述スタイルを目指すこと。
  • API がユーザーのために解決できるすべての問題をカバーすること。

API の使用法

新しい API を実装する手順には、以下が含まれます。

  1. API キーを取得します。これは、API プロバイダーで確認済みのアカウントを作成することによって行います。
  2. HTTP API クライアントを設定します。このツールを使用すると、受け取った API キーを使用して API リクエストを簡単に構成できます。
  3. API クライアントがない場合は、API ドキュメントを参照して、ブラウザでリクエストを自分で構成してみることができます。
  4. 新しい API 構文に慣れたら、自らのコードで使い始めることができます。

新しい API の所在地

新しい Web API は、API マーケットプレイスと API ディレクトリにあります。API マーケットプレイスは、誰でも API を掲載して販売できるオープンプラットフォームです。API ディレクトリは、ディレクトリ所有者によって規制されている制御されたリポジトリです。エキスパート API 設計者は、ディレクトリに追加する前に、新しい API を評価およびテストできます。  

人気のある API ウェブサイトには次のものがあります。

  • Rapid API – サイトに 10,000 を超えるパブリック API と 100 万人のアクティブなデベロッパーが集まる最大のグローバル API マーケット。RapidAPI では、ユーザーは購入を確定する前に、プラットフォーム上で API を直接テストできます。
  • Public APIs – プラットフォームはリモート API を 40 のニッチなカテゴリにグループ化し、ニーズに合った適切な API を簡単に参照して見つけることができます。
  • APIForThat と APIList – これらのウェブサイトには、500 個の Web API のリストと、それらの使用方法に関する詳細情報があります。    

API ゲートウェイとは

API ゲートウェイは、幅広いバックエンドサービスを使用するエンタープライズクライアント向けの API 管理ツールです。API ゲートウェイは通常、すべての API コールに適用できるユーザー認証、統計、レート管理などの一般的なタスクを処理します。

フルマネージド型サービスの Amazon API Gateway を利用すれば、デベロッパーは規模にかかわらず簡単に API の作成、公開、保守、モニタリング、保護が行えます。API Gateway では、トラフィック管理、CORS サポート、認可とアクセスコントロール、スロットリング、モニタリング、API バージョン管理など、数十万規模の同時 API コールの受け入れと処理に伴うすべてのタスクを取り扱います。

GraphQL とは

GraphQL は、API 用に特別に開発されたクエリ言語です。クライアントがリクエストするデータを正確に提供することを優先し、それ以上は提供しません。これは、API を高速で柔軟、そしてデベロッパーにとって使いやすいものにするように設計されています。REST に代わり、GraphQL はフロントエンドデベロッパーは単一の GraphQL エンドポイントで複数のデータベース、マイクロサービス、および API にクエリを実行できます。 組織が GraphQL を使用して API を構築することを選択するのは、アプリケーションの開発を迅速化するのに役立つためです。 GraphQL について詳しくはこちら

AWS AppSync は、GraphQL API の開発を容易にする、フルマネージドサービスです。このサービスは、AWS DynamoDB や AWS Lambda、その他のデータソースとの安全な接続に必要な、面倒な作業を自動的に処理します。AWS AppSync は、ウェブソケットを介してリアルタイムのデータ更新を数百万のクライアントにプッシュできます。モバイルおよびウェブアプリケーションの場合、AppSync は、デバイスがオフラインになったときにローカルデータアクセスも提供します。デプロイが完了すると、API リクエストのボリュームに合わせた GraphQL API 実行エンジンの自動的なスケールアップとダウンが、AWS AppSync により行われます。

Amazon API サービスを享受する方法

アプリケーションプログラミングインターフェイスの管理は、最新のソフトウェア開発の重要な部分です。内部ユーザーと外部ユーザーの両方のためのツール、ゲートウェイ、マイクロサービスアーキテクチャなどの API インフラストラクチャには投資する価値があります。

Amazon API Gateway には、複数の API を同時に効率的に管理するためのあらゆる機能が付属しています。AWS ポータルにサインアップすることで、最大 100 万の API コールを無料で行うまでことができます。

AWS AppSync には、GraphQL API に関するセットアップ、管理、保守の機能が、高可用性のサーバーレスインフラストラクチャを使用したフルマネージド型として組み込まれています。支払いは使用した分に対してのみ発生し、最低料金やサービス使用義務はありません。使用開始するには、AWS AppSync コンソールにサインインしてください。

AWS での次のステップ

追加の製品関連リソースをチェックする
IDE サービスの詳細 
無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。

サインアップ 
コンソールで構築を開始する

AWS マネジメントコンソールで API ゲートウェイを使って構築を開始しましょう。

サインイン