SwaggerとOpenAPIの違いは何ですか?

  2017年10月26日

今年、OpenAPI仕様の最新バージョンであるOpenAPI 3.0が正式にリリースされました。

API開発に携わる人々にとって、OAS 3.0のリリースは、まあ…かなり大きな出来事です。

なぜか?このリリースが非常に重要な理由の一つは、OpenAPI 3.0が2015年にSmartBear SoftwareによってOpenAPI Initiativeに寄贈され、Swagger SpecificationからOpenAPI Specificationに名称変更されて以来、初めての公式リリースであることです。

OpenAPI 3.0がAPI分野でなぜ重要なのかという理由をいくつか説明する前に、OpenAPIとそれがSwaggerにとって何を意味するのかについて、いくつかの疑問をまず解消しておくことが重要です。

この2年間で、SwaggerからOpenAPIへの変更について多くの疑問が寄せられました。また、OpenAPIとSwaggerの違い、どちらの名前をいつ使うべきか、そしてOpenAPIとSwaggerの関係についても多くの混乱がありました。

まず、SwaggerとOpenAPIの明確化から始めましょう。

違いを理解する最も簡単な方法は、次のとおりです。

  • OpenAPI = 仕様
  • Swagger = 仕様を実装するためのツール

OpenAPIは、その仕様の正式名称です。この仕様の開発は、Microsoft、Google、IBM、CapitalOneなど、技術界のさまざまな分野から30以上の組織が参加するOpenAPI Initiativeによって推進されています。Swaggerツールの開発を主導するSmartbear SoftwareもOpenAPI Initiativeのメンバーであり、仕様の進化をリードしています。

Swaggerは、OpenAPI仕様を実装するための最もよく知られ、広く使用されているツールの一部に関連付けられた名前です。Swaggerツールセットには、オープンソース、フリー、商用ツールが混在しており、APIライフサイクルのさまざまな段階で使用できます。

これらのツールには以下が含まれます。

  • Swagger Editor: Swagger Editorを使用すると、ブラウザ内でYAML形式のOpenAPI仕様を編集し、リアルタイムでドキュメントをプレビューできます。
  • Swagger UI: Swagger UIは、OAS準拠のAPIから美しいドキュメントを動的に生成するHTML、Javascript、CSSアセットのコレクションです。
  • Swagger Codegen: OpenAPI仕様が与えられれば、APIクライアントライブラリ(SDK生成)、サーバスタブ、ドキュメントを自動的に生成できます。
  • Swagger Parser: JavaからOpenAPI定義を解析するためのスタンドアロンライブラリ
  • Swagger Core: OpenAPI定義を作成、利用、および操作するためのJava関連ライブラリ
  • Swagger Inspector (無料): APIを検証し、既存のAPIからOpenAPI定義を生成できるAPIテストツール
  • SwaggerHub (無料および商用): OpenAPIを使用するチーム向けに構築されたAPIデザインおよびドキュメンテーション

Swaggerツールは、元のSwagger Specificationの作成に携わったチームによって開発されたため、これらのツールは依然として仕様の同義語と見なされることがよくあります。しかし、SwaggerツールがOpenAPI Specificationを実装するために利用できる唯一のツールではありません。仕様のバージョン2.0をサポートし、3.0のサポートを積極的に追加しているAPIデザイン、ドキュメンテーション、テスト、管理、監視ソリューションが多数あります。

最新バージョンのOpenAPI仕様をサポートするツールの全リストはGitHubで確認できます

なぜSwaggerツールはOpenAPIに名前を変更しなかったのか?

Swaggerエコシステムは常に、仕様とその周辺の主要なオープンソースツール(最も有名なのはSwagger UI、Swagger Editor、Swagger Codegen)で構成されてきました。仕様が広く採用された大きな理由の一つは、それに付随するツールがあったためです。

SmartBearは仕様を寄贈しましたが、人気のあるオープンソースのSwaggerツールは、開発者、テクニカルライター、テスター、デザイナーがツールに抱いていた強い関連性のため、元のブランド名を維持しました。仕様はSwaggerツールにのみ関連付けられているわけではなく、これまでもそうではありませんでした。実際、仕様を寄贈し、OpenAPI Initiativeを設立するという決定は、OpenAPIが完全にベンダーニュートラルであることを保証するためです。API BlueprintやRAMLのような他の定義形式もサポートしている企業を含む、API分野の多くの企業がこのイニシアチブに参加していることを嬉しく思います。

Swaggerチームは、OpenAPI仕様を使用してAPIを設計、ドキュメント化、開発、テストするための最も強力で使いやすいツールの構築に引き続き注力し、OpenAPIをサポートするためにツールセットを成長させ、進化させ続けます。これらのツールは引き続きSwaggerの名前を維持します。Swagger.io、SwaggerツールとオープンソースのSwaggerプロジェクトのオンラインホームも、Swaggerツールについて学ぶための頼りになる場所であり続け、OpenAPIを扱うためのトレーニング、チュートリアル、ウェビナー、ドキュメンテーションを通じて、OpenAPI仕様に関する知識にも貢献し続けます。

OpenAPIおよびSwaggerコミュニティを理解する

OpenAPIに貢献する人々とSwaggerツールに貢献する人々の間には常に重複がありますが、これら2つのコミュニティは互いに独立しています。

この記事で述べたように、OpenAPI Initiativeは、API開発において仕様の進化または活用を支援したいと考えるすべての人々の参加を歓迎する、オープンでベンダーニュートラルな組織です。組織は仕様に貢献するメンバーの増え続けるリストに参加するよう招待されており、個人はGitHubでアイデアやフィードバックを共有したり、毎月世界中で開催される多くのOASミートアップのいずれかに参加したりすることで参加できます。貢献方法の詳細はこちら

Swaggerツールは独自のコミュニティを持ち、既存のSwaggerプロジェクトの改善を支援し、新しいアイデアや機能リクエストを導入することに焦点を当てています。Swaggerコミュニティは、オープンソースのSwaggerツールの開発に投資するSmartBear Softwareのチームによって育成されていますが、世界中の数千人のSwaggerユーザーの貢献によっても推進されています。Swaggerコミュニティに参加したい場合は、GitHubで私たちを見つけるか、Swagger API Meetupグループに参加することをお勧めします。最新のニュースとアップデートは、SwaggerブログまたはTwitterの@SwaggerAPIでも見つけることができます。

OpenAPIの明るい未来に期待

OpenAPIがAPI分野の誰もが認識する名前になることを楽しみにしており、OpenAPI Initiativeメンバーの成長するコミュニティの一員であることを嬉しく思います。

この記事が、OpenAPIとそのSwaggerとの関係に関するいくつかの疑問を明確にするのに役立ったことを願っています。

まとめ

  • 仕様は2015年にOpenAPI Specificationに名称変更されました。OpenAPI 3.0は仕様の最新バージョンです。
  • SmartBear SoftwareがサポートするSwaggerツールは、OpenAPI Specificationを実装するための最も人気のあるツールであり、Swaggerの名前(Swagger Editor、Swagger UI、SwaggerHubなど)を維持し続けます。
  • Swaggerとは関係のない、OpenAPI 2.0 Specificationをサポートする他の何百ものオープンソースおよびプロフェッショナルツールがあり、3.0をサポートするツールのリストは増え続けています。
  • OpenAPIとSwaggerは両方ともオープンソースコミュニティを持ち、すべての貢献者がアイデアを共有し、参加することを歓迎しています。

もし、これらの疑問をまだ持っているAPIを扱っている同僚、友人、またはその他の人がいたら、この投稿を共有していただければ幸いです。SwaggerチームはSwaggerとOpenAPIの関係を明確にするために懸命に努力していきますので、皆さんもご協力ください!

Swagger入門: OASとSwaggerツールの紹介

11月14日に開催される無料のトレーニングにご参加ください。SwaggerツールエコシステムとOpenAPI仕様を紹介します。詳細はこちら。