ほとんどの情報筋によれば、2002 年にアマゾンの上級幹部、ジェフ・ベゾス自身が就任した。他の人によると、当時 Amazon の CTO だった Allan Vermeulen は、 Amazon のすべての開発チームに宛てた社内回覧を開始しました。この通達は、最終的に Web およびソフトウェア開発のダイナミクスを永遠に変え、 API/マイクロサービスに基づく現在のパラダイムを生み出すことになります。
その少し前に、同社の専門家は、モノリシック ソフトウェアを中心に構築された戦略では Amazon のますます複雑化するニーズに十分な機敏性が得られないと判断しました。つまり、サービスを相互に通信する小さな自律的なコンポーネントに分割する必要があるということです。
これが史上初の API というわけではありません。すでに2 年前に Salesforce が最初のプライベート API を作成し、その 9 か月後にはeBay が開発者が利用できる最初のパブリック API を作成しました。しかし、それらは依然として特定のプロジェクトであり、それぞれの企業のソフトウェア開発方法に世界的な影響を与えるものではありませんでした。
さらに、Amazon のアプローチは API の実装に限定されませんでした。代わりに、同社は、標準化されたインターフェイス (API など) を介してデータと機能を公開することに基づく、マイクロサービス アーキテクチャを選択しました。
しかし、API とは何でしょうか?
「API」は「Application Programming Interface」の頭字語で、「アプリケーション プログラミング インターフェイス」と訳され、異なるアプリケーションまたはサービス間の通信を可能にし、機能の再利用とシステム統合を促進する一連のルールとプロトコルを指定します。
この結果、API を使用すると、新しいアプリケーションを作成するたびに車輪の再発明を行う必要がなくなります。したがって、オンライン ストアは、独自のシステムを実装する代わりに、API を介して大規模な支払いサービス (PayPal など) に接続することに頼っています。
PayPal のようなサービスは、その利用と人気を倍増させるパブリック API の開発に関心を持っています。また、サードパーティの「クライアント」アプリケーションによって、ソーシャル ネットワークが、たとえば公式アプリと互換性のない少数のオペレーティング システムにアクセスできるようになる Twitter の場合も同様です。
API の基本的な側面は、 「ネットワーク効果」を生み出す能力です。つまり、「デジタル構成要素」である API が提供する機能の数が増えるほど、API を使用して構築できるアプリケーションの価値が高まります。
現在の実践では、特に外部サービスとの通信では API が依然として基本的ですが、分散アーキテクチャ内のマイクロサービス間の通信は進化しています。現在では、RabbitMQ、Kafka、PubSub などの非同期メッセージング システムが、同期通信に関連する問題を回避する一般的な選択肢となっています。 REST API。
昔の回覧板
すでに「API Mandate」(「API Order」)として知られているものの全文は次のとおりです。
「すべてのデバイスがサービス インターフェイスを通じてデータと機能を公開するようになります。
コンピュータは、これらのインターフェイスを通じて相互に通信する必要があります。
他の形式のプロセス間通信は許可されません。直接リンク、別のコンピューターのデータ ストアからの直接読み取り、共有メモリ モデル、いかなる種類のバック ドアも許可されません。許可される唯一の通信は、ネットワーク上のサービスのインターフェイス呼び出しを介したものです。
HTTP、Corba、Pubsub、カスタム プロトコルなど、どのようなテクノロジを使用するかは関係ありません。
すべてのサービス インターフェイスは、例外なく、外部化できるように最初から設計する必要があります。つまり、チームはインターフェイスを外部の開発者に公開するために計画と設計を行う必要があります。例外はありません。
「これをしない人は解雇されます。」
いくつかの Web サイトで、この文書の 7 番目のポイントの存在についての言及が見つかります。「ありがとう、良い一日を!」と書かれていますが、これは回覧を初めて公開した元 Amazon 従業員によって挿入されたジョークです。 12年前にGoogle+で。それどころか、6点目は冗談ではないことを彼自身が明言した。
「API」という用語 (20 世紀半ばに遡る) は文書全体に一度も登場しませんが、データの公開、使用の外部化、標準化されたインタラクション、技術的不可知論など、現在の API 概念のすべての鍵がそこにあります。 (つまり、動作は使用されるプロトコル/ソフトウェア/オペレーティング システムから独立しています)…
このようにして、Amazon は社内インフラストラクチャに革命をもたらしただけでなく、それを普及させることで新たなニッチ市場を生み出すことに成功しました…1 年後には Amazon 自身が AWS の立ち上げでそれをカバーしました。このプラットフォームには、他の多くのサービスの中でも次のものが含まれます。顧客のアプリケーションに API 機能を提供できる可能性。
