APIファーストアプローチによる製品開発の理解

Janet Wagnerによる

Web APIはほぼ20年間存在していますが、「APIファースト」の概念がソフトウェアチームで注目を集めるようになったのは、ここ数年のことです。製品開発にAPIファーストアプローチを採用する開発者の数は増加しています。そこで今日は、APIファーストの概念と、このアプローチが注目を集めている理由についてご紹介します。

APIファーストアプローチとは?

APIファーストアプローチとは、特定の開発プロジェクトにおいて、APIを「ファーストクラスシチズン」として扱うことを意味します。プロジェクトのすべてが、最終製品がモバイルデバイスで利用され、APIがクライアントアプリケーションで利用されるという考えを中心に展開されます。APIファーストアプローチでは、一貫性があり再利用可能なAPIを開発する必要があります。これは、API記述言語を使用して、APIの動作に関する契約を確立することで実現できます。契約の確立には、APIの設計についてより多くの時間を費やすことが含まれます。また、コードを記述する前に、APIの設計に関するフィードバックを提供する関係者との追加の計画と協力も含まれることがよくあります。

APIファーストの普及

今日、人間と機械の両方がデータを消費しています。人間はアプリケーションを通じて、多くの異なるデバイス(スマートフォン、ラップトップ、タブレット、デスクトップなど)からデータを消費します。多くの異なる種類のデバイスは、多くの異なる画面サイズを意味します。組織は、すべてのデバイスで美しく動作するアプリを構築する必要があります。

APIにより、企業は機能を個々の自律的なサービス(別名マイクロサービス)に分割できます。マイクロサービスに基づいてアプリケーションを構築することで、すべてのデバイスで優れたユーザーエクスペリエンス(UX)を確保できます。APIファースト戦略により、組織はすべてのアプリケーションにサービスを提供するAPIを構築でき、すべてのデバイス、プラットフォーム、およびオペレーティングシステムに対して、アプリケーションを効率的に開発および維持できます。

APIファーストアプローチの利点

製品開発へのAPIファーストアプローチには、多くの利点があります。以下はその一部です。

開発チームは並行して作業できます

APIファーストには、契約の確立が含まれます。組織全体のチームによって従われるサービス間の契約を作成することにより、それらのチームは複数のAPIを同時に作業できます。開発者は、次のAPIに進む前に、APIの更新がリリースされるのを待つ必要はありません。チームは、確立されたAPI定義に基づいて、APIをモックし、APIの依存関係をテストできます。

アプリ開発のコストを削減します

APIとコードは、多くの異なるプロジェクトで再利用できます。開発チームが新しいアプリを構築する場合、時間と費用のかかるゼロからの開始は必要ありません。APIファースト設計では、コードを記述する前にほとんどの問題を解決できるため、APIをアプリケーションと統合する際に問題が発生するのを防ぐことができます。

市場投入までの時間を短縮します

APIの構築プロセスの多くは、API定義ファイルのインポートを可能にするツールを使用して自動化できます。SwaggerHubなどのツールを使用すると、API定義ファイルのインポートが可能になり、それらのファイルを使用してAPIドキュメント、SDK、モックAPIなどのAPIツールを自動生成できます。自動化により、APIとアプリケーションの開発が大幅に高速化されます。

APIファーストにより、システム全体を再設計することなく、新しいサービスとテクノロジーをアプリケーションに追加することもできます。アプリケーションの開発に関しては競争が激しいため、アプリは迅速に開発する必要があります。今日のアプリケーションは、設計が優れているだけでなく、6か月以内に市場に出す必要があります。

優れた開発者エクスペリエンスを保証します

APIのコンシューマーはほとんどの場合開発者であり、開発者エクスペリエンス(DX)はAPIの成功を左右する可能性があります。APIファーストは、開発者があなたのAPIを積極的に使用できるようにします。設計が優れていて、適切に文書化され、一貫性のあるAPIは、コードの再利用と開発者のオンボーディングが容易になり、学習曲線が減少するため、肯定的な開発者エクスペリエンスを提供します。

失敗のリスクを軽減します

ほとんどの企業では、APIはマーケティングや営業からコミュニケーションや消費者向けアプリケーションまで、ほぼすべてのビジネスプロセスで使用されているため、APIはビジネスのあらゆる側面にプラスまたはマイナスの影響を与える可能性があります。APIファーストは、APIが信頼性が高く、一貫性があり、開発者が使いやすくなるようにすることで、失敗のリスクを軽減します。

APIファーストプログラムの計画

製品開発へのAPIファーストアプローチの利点の一部を理解したところで、APIファーストアプローチの計画と実装方法について考えてみましょう。
APIファーストプランに含まれるべきもののほんの一例を以下に示します。

  1. ブレインストーミング - まず、ビジネスが提供する主要なサービスとビジネスの機能を特定する必要があります。構築する必要があるAPIの種類と、APIを介して提供する必要があるサービスを調べます。また、各APIのユースケースを特定して書き留めます。それらのユースケースに基づいて、潜在的なエンドポイントを書き留めます。
  2. API関係者の特定 - 組織内の関係者とは誰ですか?できるだけ多くの人がAPIイニシアチブに関与する必要があります。企業全体の承認と、組織内のチームによって共有されるビジョンが必要です。また、関係者にAPIの設計への意見を求めます。関係者は組織全体のインタラクションについて合意できるため、APIの一貫性が維持されます。
  3. API契約の設計 - 契約は、APIを設計するための標準とベストプラクティスの一式を確立します。すべてのAPIを説明して文書化してください。すべてのAPIが、エンドポイント名とURLからエラーコードとバージョン管理まで、同じように動作することを確認します。一貫性が重要です。
  4. スタイルガイドの作成 -包括的で一貫性のあるスタイルガイドは、サービスを構築している組織のチーム全体の一貫性を確保します。APIステータスコード、バージョン管理、エラー処理などは標準化され、APIが同じように設計されることが保証されます。スタイルガイドを作成するためのツールとしてSwaggerHubを使用し、組織全体のすべてのAPIで標準化します。
  5. APIガバナンスの実装 - APIガバナンスプロセスは、確立された標準を施行し、望ましい結果を強化するのに役立ちます。今後のブログ記事でAPIガバナンスについて説明します。ピアコードレビューを実施することで、API設計標準が遵守され、開発者が高品質のコードを作成していることを確認することもできます。
  6. プロセスの自動化 - SwaggerHubなどのツールを使用して、APIドキュメントの生成、スタイル検証、APIモック、バージョン管理などのプロセスを自動化します。また、APIをセルフサービスにすることで、開発者はすぐにあなたのAPIを使用してアプリの構築を開始できます。インタラクティブなドキュメントまたはサンドボックスを提供して、開発者がAPIエンドポイントを試せるようにします。
  7. APIポートフォリオの追跡と管理 - コードの重複と冗長なAPIの構築を避けるために、APIポートフォリオを追跡および管理します。APIの追跡と管理に役立つシステムを実装します。組織とプラットフォームが大きくなるほど、APIとその依存関係を追跡することが難しくなります。
  8. 内部開発者向けのポータルの作成 - 内部開発者向けのセントラルリポジトリを作成します。このリポジトリには、すべてのAPIに関するすべての情報(API仕様、ドキュメント、契約など)が保存されます。たとえば、PayPalは開発者向けのポータルを構築しており、InfoQの記事によると「PayPalで最もアクセスが多い内部アプリの1つ」です。InfoQの記事。PayPalのポータルには、すべてのAPI、ドキュメント、ダッシュボードなどが含まれています。

APIをファーストクラスシチズンとして

製品開発へのAPIファーストアプローチは、組織に多くのメリットをもたらします。APIファーストアプローチには、チームがAPIプログラムのビジョンを計画、整理、共有することが必要です。また、APIファーストアプローチをサポートするツールの導入も必要です。

最後までお読みいただきありがとうございます!さらにAPIに関するリソースをお探しですか?Swaggerのニュースレターを購読してください。最高のAPI記事、トレーニング、チュートリアルなどをまとめたメールを毎月お届けします。 購読する

目次