標準化された API 設計の重要性

  2017年5月26日

APIデザイン分野における一貫性は、広く議論されているテーマです。標準化されたAPIデザインは、組織がAPIを保守、採用、消費しやすくする上での次の重要な検討事項となります。しかし、組織はAPIデザインの標準化に十分な時間を投資していません。その一因として、標準化の価値を認識していないことが挙げられます。この記事では、APIデザインにおける一貫した組織スタイルを持つことの意味と、それが提供するメリットについて議論したいと思います。

APIデザインにおける標準化とは?

APIデザインとは、APIの保守と実装をより良く可能にし、消費者がAPIを簡単に使用できるようにする効果的なインターフェースを作成することです。

一貫したAPIデザインとは、組織またはチーム内のすべてのAPI、およびそれらが公開するリソース全体でデザインを標準化することです。これは、開発者、アーキテクト、テクニカルライターが従うべき共通の設計図であり、API消費において一貫した「声」、ブランド、エクスペリエンスを確保することを目的としています。組織は、APIのデザインと実装方法の一貫性を確保するためのスタイルガイドラインを使用してデザインを標準化します。以下にいくつかの人気のあるスタイルガイドラインを示します。

  1. Microsoft REST APIガイドライン
  2. Google APIデザインガイド
  3. PayPal APIスタイルガイド

Kin Lane(@apievangelist)は、いくつかの人気のあるスタイルガイドをリストアップした良い記事を書いています。Arnaud Lauret(@apihandyman)もAPI Stylebookウェブサイトを管理しており、公開されているAPIスタイルガイドを発見するための素晴らしいリソースです。

しかし、なぜ標準化するのか?

不動産開発会社の例を考えてみましょう。建築家が建物の各フロアのすべての要素を設計する際、部屋、ドア、柱、窓などが特定のパターンに従うようにします。これは建設チームがより良く建設するのに役立つだけでなく、建物に住み、移動する体験を快適で楽しいものにします。

同じことがあなたのAPIにも言えます。あなたの組織が不動産会社であれば、あなたのAPIはフロアであり、リソース、パラメータ、レスポンスがフロア内のさまざまな要素です。API設計フェーズにおける一貫性の必要性を理解していきましょう。

優れた開発者エクスペリエンスを確保

誰も使わないのであれば、素晴らしい機能的なAPIがあっても意味がありません。あなたのAPIは、会社のサービス、価値提案、価値をエンドユーザーに伝える他の製品と同じです。一般的な消費者とAPI消費者の重要な違いは、技術的な知識のレベルです。

APIの消費者は開発者またはエンジニアであり、より良いアプリケーションを構築するためにあなたのAPIを使用したいと考えている人です。あなたのAPIは彼らにとってミッションクリティカルであり、彼らはあなたのAPIがどれだけ使いやすく機能的であるかについて積極的に批判するでしょう。組織のAPI全体で一貫したデザインは、あなたのプラットフォームを使用する開発者にとって可能な限りスムーズなエクスペリエンスを保証します。

デザインの標準化は、APIに馴染みやすさをもたらします。これにより、開発者が同じAPI内または複数のAPI間でさまざまなリソースを使用し始める際の学習曲線が最小限に抑えられます。一貫した優れたデザインは、APIの使用を簡単かつ直感的にし、エンドユーザーの時間を尊重し、ニーズに応えていることを示します。これらすべてが、技術的な顧客との関係改善に大いに役立ちます。

実装の時間と費用を節約

デザイン標準は、社内のすべてのAPIで使用するためのデザイン推奨事項とベストプラクティスのセットであるとされています。これらの標準は、アーキテクトがAPIのデザインを迅速に反復するのに役立つだけでなく、実装も高速化します。

APIを設計する重要な理由は、より高速なコードを保証することです。デザインは引き渡されるために作成されます。一貫して設計されたAPIは、開発者、DevOps、テスターのいずれであっても、実装チームが機能するAPIを作成するためにより良く作業できるようにします。

クリーンで理解しやすく、関連性のある設計基準を作成することで、チーム内のすべての利害関係者がAPIで何をすべきかを把握できます。一貫した設計があれば、これらのAPIが何をすべきか、さまざまな命名法が何を意味するのか、さまざまなプロトコルをどのように解釈するのかについて誤解が生じることはありません。

APIプログラムの持続可能性を向上させる

企業によるAPIへの投資は、長期的な取り組みです。設計標準は、APIの実装を改善するだけでなく、APIの更新方法や新しいAPIの開発方法も規定します。

設計ガイドラインが設定されると、それに基づいて構築し、チームがAPIを開発することが容易になり、組織は設計および開発プロセスをスケーリングできるようになります。また、保守および消費における長期的な問題を回避するのにも役立ちます。複数のチームが異なるサービスを構築することは困難な場合があります。

設計はクライアントとサービスがどのように相互作用するかを定義するため、設計に違いがあると、サービスの開発フェーズで混乱とオーバーヘッドが生じます。これらの矛盾は増幅するばかりで、その影響はAPIライフサイクル全体に拡大します。たとえば、リソースの命名法が一貫していないAPIは、実装中にコントローラーで異なる命名スタイルを持つ可能性があり、このリソースに対してテストケースを作成する際に混乱を引き起こし、最終的にAPIリソースを消費する際にネガティブなエクスペリエンスにつながる可能性があります。  

SwaggerHubの活用法

SwaggerHubの製品チームは、チームが設計プロセスを標準化する際に、手間のかからない体験を確保したいと考えています。以下は、組織がAPIの一貫性を維持し、その採用を改善するために役立つ機能の一部です。

  • スタイルバリデーター: スタイルバリデーターを使用して、Swagger仕様が特定の記述標準に適合しているかを確認します。たとえば、会社のガイドラインでは、すべてのプロパティに例が指定されている必要がある場合があります。スタイルバリデーターは、そのようなチェックを自動化するのに役立ちます。スタイルバリデーターの統合を作成するときは、実行するチェックを指定します。スタイルバリデーターを実行すると、これらのチェックに従ってSwagger仕様がチェックされ、問題があれば通知されます。詳細はこちら。
  • ドメイン: ドメインは、複数のAPIや他のドメイン間で共有できる再利用可能なコンポーネントです。ドメインには、定義、パスアイテム、パラメーター、レスポンスなどのコンポーネントを含めることができます。ユーザーはドメインを作成およびバージョン管理し、その中に保存できる再利用可能なコンポーネントを定義できます。これらのコンポーネントは、ユーザーまたはAPIの共同作業者によって、他のAPIまたはドメインから参照できます。詳細はこちら。

今すぐ無料で始めましょう!