アプリケーション プログラミング インターフェイス(API)とは何か

アプリケーション プログラミング インターフェイス(API)は、ユーザー(人またはソフトウェア)と情報(オンラインおよびWebアプリケーションによって利用可能になるデータ リソース)という2つのエンティティ間の通信を可能にする一連の定義、ルール、およびプロトコルです。

現在、APIは最新のアプリケーションの基本フレームワークを形成し、ユーザー エクスペリエンスを向上させ、ビジネス モデルを強化しています。場合によっては、APIがビジネス モデルそのものになることもあります。

APIの仕組み

APIはアプリケーションの「公開部分」であり、アプリケーションが実行する機能と提供可能な情報を明らかにし、要求の適切な形式を定義します。開発者がアプリケーションのAPIを作成して公開すると、他のアプリケーションがそのAPIと通信できるようになります。

多くの場合、APIは広く使用されている機能をすぐに利用できるようにするため、開発者の貴重な時間を節約します。開発者は、既存のアプリケーションの機能を複製するのではなく、既存のアプリケーションのAPIを呼び出すことで、その機能をアプリケーションに統合できます。

WhatIsAnAPI-Glossary

各APIを設計、導入し、機能させる方法は、そのアーキテクチャのスタイルやプロトコルによって異なります。

APIアーキテクチャとプロトコルの種類

APIアーキテクチャ、つまりアーキテクチャのスタイルとは、APIの高レベルの設計を指します。これには、APIを構造化および組織化する方法やそのリクエスト/応答の形式が含まれます。また、APIプロトコルは形式を指定し、その上、正確なメッセージを記述します。

一般的なAPIアーキテクチャとプロトコルには次のものがあります。

  • REST – RESTfulとも呼ばれるこのアーキテクチャ スタイルは、Representational State Transferの原則に基づいています。HTTPメソッド(GET、POST、PUT、DELETEなど)と抽象化された情報(リソースとリソース モデルの形式)を使用して、拡張性と柔軟性に優れ、技術的に独立した構造を作成します。現在でも、RESTは最も広く使用されているAPIアーキテクチャです。
  • GraphQL – Meta(旧Facebook)によって開発されたオープン ソースのクエリ言語。GraphQLアーキテクチャによって、1つのAPI呼び出しで複数のソースからデータを取得できます。クライアントは必要なデータのみをリクエストするため、GraphQL APIはREST APIよりも効率的である傾向があります(ただし、キャッシュ可能性が低い)。
  • SOAP – このアーキテクチャ アプローチでは、Simple Object Access Protocol(SOAP)を使用します。SOAPメッセージは一般的にXML形式でフォーマットされるため、RESTやGraphQLよりもサイズが大きくなります。REST APIとは異なり、SOAP APIにはAPIプロトコルの構造を定義する厳格な実装ガイドラインがあります。
  • WebSocket – このAPIプロトコルは全二重であり、クライアントとサーバが同時にメッセージを送受信できることを意味します。さらに、サーバは、クライアント要求への応答メッセージではなく、(たとえば)サーバ側のイベントによってトリガーされるメッセージを送信できます。対照的に、REST APIは厳密な要求と応答のパターンに従います。
  • RPC – リモート プロシージャ コールを使用すると、開発者は、リモート インタラクションの詳細を指定しなくても、ローカル関数と同じコードを使用して、別のアドレス空間(通常はリモート サーバ上)で実行される関数を呼び出すことができます。このプロトコルは複数の言語を使用できるため柔軟性が高く、クライアントとサーバ間の通信で広く使用されています。RPCの一例には、gRPC(Google Remote Procedure Call)が挙げられます。
現在のAPIの使用方法

APIは最新のソフトウェアの重要な部分です。現在、組織や企業は、ニーズに応じてさまざまな種類のAPIを構築したり使用したりしています。

現在、組織で最も一般的な4つの種類のAPIは、パブリックAPI、プライベートAPI、パートナーAPI、サードパーティAPIです。

パブリックAPI

パブリックAPIは、企業外のユーザーが(収益化して、または無料で)アクセスできるため、サードパーティの開発者とパートナーシップを構築し、ビジネス エコシステム全体を拡張することができます。

パブリックAPIはサードパーティの開発者が新しい製品を構築する際に使用できるため、イノベーションの推進に貢献し、新しいパートナーシップの構築に役立つ重要なツールとなります。

プライベートAPI

プライベートAPIには、企業内の社内チームのみがアクセスできます。データのロックを解除して社内コラボレーションを促進する上で役立ちます。または、組織の公開アプリケーション(Webサイトなど)を目に見えない形でサポートする場合もあります。

プライベートAPIは社内ユーザーのみが利用できるため、組織は最適化を念頭に置いて構築できます。また、プライベートAPIによって最新のアプリケーションの構成が向上し、企業は現在のニーズに適応できるようになります。開発者は、マイクロサービスを構築しながらプライベートAPIを簡単に統合できるため、チーム間での作業の重複が減ります。

パートナーAPI

パートナーAPIは、ビジネス パートナーと直接統合する際に使用されます(航空会社がホテル チェーンと提携し、航空券と宿泊施設を同時に予約できるようにする場合など)。パートナーAPIは一般公開されません。パートナーAPIには、両方のビジネスの認証(AuthN)と認可(AuthZ)の要件を満たす一部の開発者のみがアクセスできます。

パートナーAPIはサイロを排除し、さまざまな組織が相互に通信できるようにするため、相互運用性によってパートナーAPIとの関係が強化されます。

サードパーティAPI

サードパーティAPIは、アプリケーションとサービスに不足しているデータや機能にアクセスするために、組織によって使用されます。これらのAPIはサードパーティのサーバ上で実行され、通常は広く必要とされているサービスを提供します(多くのeコマースWebサイトで使用されているStripe決済処理APIなど)。APIに応じて、組織は有料もしくは無料でこれらのサービスを使用できます。

サードパーティAPIは他の開発者または組織がすでに構築したものであるため、明確なメリットの1つとしてコストの削減が挙げられます。さらに、開発者は自分でコーディングせずに機能をすぐに使用できるため、サードパーティAPIは、組織がアプリケーションをより迅速に開発するための主な手段となっています。

APIの作成に使用されるアプリケーション言語

APIのコーディングには、ほとんどの最新のプログラミング言語を使用できます。APIをコーディングする場合、多くの開発者はフレームワークを使用します。フレームワークは、コード ライブラリやその他の必要なユーティリティなどのビルディング ブロックを提供し、言語を使用してアプリケーションを迅速かつ簡単に構築できるようにします。

一般的に、各プログラミング言語には、開発者の間で広く使用されている1つ以上のフレームワークがあります。次の表に、いくつかのフレームワーク オプションを示します(多くはオープン ソースです)。

 

言語

フレームワーク

Java

Spring

JavaScript、Node.js

AngularExpress.jsReactVue

PHP

LaravelSlimSymfony

Python

DjangoFlask

Rust

RocketYewActix-Web

Ruby

Rails

言語とフレームワークの選択は通常、プロジェクトのニーズまたは開発者個人の好みによって決まります。

APIの例

今日の組織は、目標に沿った最新のAPI戦略を必要としています。API戦略では、組織がAPIをどのように設計、開発、管理、統制、保護するかに関する計画を立てます。

Gartnerの「ソフトウェア エンジニアリング リーダーのための上位5つのAPIレッスン」では、API戦略を強力なものにするためのベスト プラクティスが5つ紹介されています。

  • APIガバナンスによってボトルネックが発生しないようにすること。イノベーションを推進し続けるには、APIガバナンスと開発者の俊敏性とのバランスを取る必要があります。
  • 収益化する予定がない場合でも、APIを製品として扱うこと。各APIに、ビジネス目標に沿った明確な目的と対象者が設定されていることを確認してください。
  • ハッカーが検出する前にAPIを検出すること。検出可能性と定期的な監視を優先することで、セキュリティ侵害を防ぐことができます。
  • APIのライフサイクルを管理すること。包括的なAPIライフサイクル管理によって、APIが適切なセキュリティで継続的に実行できるようにします。
  • 最適なAPIテクノロジを選択すること。ある組織で機能するものが、他の組織でも機能するとは限りません。そのため、現在および将来の具体的なAPIニーズを詳細に検討することが重要です。
API接続とは何か

APIは開発者向けのツールとして始まりましたが、収益を増加させ、企業の俊敏性をサポートする戦略的なビジネス資産へと成長してきました。API接続とは、可視性、セキュリティ、ガバナンスにおける課題を解決することを目的として、モジュール式の再利用可能なAPIを使用してクラウドネイティブ環境でデータとアプリケーションをリンクすることを指します。