SwaggerHubのCompare & MergeでAPIドキュメントワークフローを改善する

  2017年1月6日

SwaggerなどのAPI記述形式は、APIプロバイダーとエンドコンシューマー間の契約として機能し、APIのすべてのリソースと操作を、人間と機械の両方が読み取り可能な形式で明確に詳細に記述します。Swaggerを使用してRESTful APIを文書化することで、開発が容易になり、検出性が向上し、エンドコンシューマーにとって全体的により良い統合体験が可能になります。 APIを定義するためにSwaggerを使用するプロバイダーは、その契約を最新の状態に保つ責任があり、そのためにはSwagger定義の複数のバージョンを管理する必要があることがよくあります。 あるいは、「コードファースト」アプローチでSwaggerを導入している場合(APIのコードからアノテーションを使用してSwagger仕様を生成する必要がある場合)は、APIの優れた定義を作成するためにいくつかの調整が必要になることがあります。 どのようなアプローチでSwaggerを使用してAPIを定義する場合でも、プロセスにはさまざまなスキルセットと責任を持つ複数の人々が関与する可能性が高いです。

APIドキュメント作成に適切な人材を巻き込む

APIライフサイクルの設計およびドキュメント作成フェーズには、開発者とAPI設計者だけが関与するわけではありません。チームがAPIのドキュメント作成に真剣に取り組んでいる場合、APIのさまざまなリソースと連携するための具体的なドキュメントを提供することで、APIの使いやすさを向上させる責任を負うテクニカルライターがいる可能性が高いです。 その人物はAPIの初期開発に積極的に関与していないことが多く、結果として、APIエンドポイントの正確な記述とエンドユーザーに適切なコンテキストを提供する方法を理解するために多くの時間を費やす必要があります。 このドキュメントワークフローには、開発者、テクニカルライター、およびAPIの公開に関与する他のすべての関係者との多くのコラボレーションが必要です。また、定義を更新する際に何も壊れないように、適切なトレーサビリティも必要です。

ドキュメントワークフローに最適なツール

ここSwaggerHubでは、APIのライフサイクル全体を通じてチームのすべてのメンバーが連携しやすくするためのツールを提供するために懸命に取り組んできました。コメントやチーム管理などの機能により、フィードバックを得たり、質問を提起したり、問題をリアルタイムで解決したりできます。 そして今、SwaggerHubの最新の改善を発表できることを嬉しく思います。これにより、Swagger定義の比較、変更のレビューと検証、およびSwagger仕様への更新の承認がさらに簡単になります。

SwaggerHubに比較とマージ機能を導入

既に使用中のSwagger定義を更新する場合でも、既存のAPIにSwaggerを追加する場合でも、APIを更新する前に変更点を比較することは役立ちます。 SwaggerHubに保存されているAPI仕様と、ファイルシステム上のYAMLまたはJSONファイルに保存されている別のAPI仕様(ローカルマシンから、またはSwaggerHubに保存されている別の定義から)を比較してマージできます。 従来の差分&マージソリューションとは異なり、SwaggerHubの比較&マージ機能は、Swagger定義への変更をレビューおよび実装するために特別に構築されています。これは適切な量のフィードバックを提供し、定義への変更に基づいてAPIがアクセス可能であることを検証するのに役立ちます。 ここでは、比較とマージツールがどのように機能するかを詳しく見ていきましょう。 SwaggerHubのSwagger定義と比較
  1. SwaggerHubで、APIを編集用に開きます。必要なバージョンに切り替えます。
  2. エディターの右上隅にある「歯車」アイコンをクリックし、メニューからAPIの比較とマージを選択します。
  3. 次のダイアログで、SwaggerHubの仕様と比較を選択します。
  4. 次のダイアログで、比較するユーザー名、API、およびAPIバージョンを指定します。
同じAPIの別のバージョンと比較するには、ユーザー名、API名を入力し、別のバージョンを選択します。
  1. 次へ」をクリックします。SwaggerHubはAPIがアクセス可能であることを検証します。
検証が成功したら、もう一度「次へ」をクリックします。これにより、API間の違いを確認できるウィンドウが表示されます。 Swaggerファイルと比較
  1. SwaggerHubで、APIを編集用に開きます。必要なバージョンに切り替えます。
  2. エディターの右上隅にある「歯車」アイコンをクリックし、メニューから「APIの比較とマージ」を選択します。
  3. 次のダイアログで、外部の仕様と比較
  4. 次のダイアログで、目的のJSONまたはYAML APIのURLを入力するか、ハードドライブ上のAPIファイルを指定します。
  5. 取得」をクリックします。SwaggerHubは指定されたAPIをロードし、それが有効かどうかをチェックします。
読み込まれたAPIが有効な場合、「比較」をクリックします。これにより、API間の違いを表示できるウィンドウが開きます(下記参照)。読み込まれたAPIが無効な場合、問題を示すメッセージが表示されます。 以下は、差異ウィンドウのサンプルビューです。 あなたのAPIは右側に、もう一方のAPIは左側にあります。SwaggerHubは変更された行を自動的に検出し、強調表示します。 ウィンドウの下部にあるDiff Type設定は、SwaggerHubが強調表示する差異を指定します。
説明
デザイン + メタデータ SwaggerHubは、プロパティ値の差異および新規および削除されたノードを強調表示します。
デザインのみ SwaggerHubは、APIの操作に影響を与える仕様構造の変更のみを強調表示します。記述、例、およびその他の人間が変更したドキュメントの差異は強調表示されません。
差異のマージ
  1. ウィンドウの右または左の部分で、強調表示された差分行(またはブロック)をクリックします。SwaggerHubは、ブロックをウィンドウの左側から右側(つまり、あなたのAPI)にコピーし、強調表示を削除します。また、元に戻すボタンのカウンターも増加します。
  2. 必要に応じて、元に戻すをクリックして、最近の承認を取り消します。複数の承認を取り消すには、「元に戻す」を複数回クリックします。
  3. 必要な差異をすべてマージした後、「変更を保存」をクリックして変更を保存します。これにより、元のAPI仕様が変更されたものに置き換えられます
差異のみを表示したい場合(つまり、2つのAPI仕様を比較したい場合)は、「キャンセル」をクリックします。 比較とマージ機能は、チームでのAPIの更新および編集のワークフローを改善するために追加されました。他に新機能に関する提案がございましたら、お気軽にこちらから機能リクエストをお送りください。