製品開発における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を記述し、文書化することを忘れないでください。エンドポイント名やURLからエラーコードやバージョン管理まで、すべてのAPIが同じように機能することを確認してください。一貫性が重要です。
  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つ」です。PayPalのポータルには、すべてのAPIのインベントリ、ドキュメント、ダッシュボードなどが含まれています。

ファーストクラスの市民としてのAPI

製品開発におけるAPIファーストのアプローチは、組織に多くのメリットをもたらします。そして、APIファーストのアプローチは、チームがAPIプログラムのビジョンを計画、整理、共有することを要求します。また、APIファーストのアプローチをサポートするツールを採用することも要求されます。

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

目次
© . This site is unofficial and not affiliated with Swagger.