⏰️ Swagger Editor の次世代バージョンをお探しですか?
SwaggerEditor は現在、次の 2 つのメジャー リリース チャネルでリリースされています。
SwaggerEditor@5のみが OpenAPI 3.1.0 をサポートしています。 SwaggerEditor@4 は OpenAPI 3.1.0 のサポートを受けず、現時点ではレガシーとみなされます。計画では、継続的に SwaggerEditor@5 に完全に移行し、将来的には SwaggerEditor@4 を非推奨にする予定です。
⁉️ Swagger Editor の古いバージョンをお探しですか? 2.xまたは3.xブランチを参照してください。
Swagger Editor を使用すると、ブラウザ内でOpenAPI API 定義(OpenAPI 2.0 および OpenAPI 3.0.3) を JSON または YAML 形式で編集し、ドキュメントをリアルタイムでプレビューできます。その後、有効な OpenAPI 定義を生成し、完全な Swagger ツール (コード生成、ドキュメントなど) で使用できます。
新しいバージョンはゼロから作成されているため、既知の問題と未実装の機能がいくつかあります。詳細については、「既知の問題」セクションを参照してください。
このリポジトリは、2 つの異なる NPM モジュールに公開します。
単一ページのアプリケーションを構築している場合は、 swagger-editor-dist
サイズが非常に大きいため、 swagger-editor
使用することを強くお勧めします。
Swagger Editor は Scarf を使用して、匿名化されたインストール分析を収集します。これらの分析は、このライブラリの管理者をサポートするのに役立ち、インストール中にのみ実行されます。オプトアウトするには、プロジェクトのpackage.json
で、 scarfSettings.enabled
フィールドをfalse
に設定します。
// package.json
{
// ...
"scarfSettings": {
"enabled": false
}
// ...
}
あるいは、npm パッケージをインストールする環境の一部として、環境変数SCARF_ANALYTICS
false
に設定することもできます (例: SCARF_ANALYTICS=false npm install
。
以下のスクリプトはいずれも、プロジェクトのルート ディレクトリでnpm run <script name>
と入力して実行できます。
スクリプト名 | 説明 |
---|---|
dev | ポート 3200 でホットリロード開発サーバーを生成します。 |
deps-check | Swagger Editor の依存関係に関するサイズとライセンスのレポートを生成します。 |
lint | ESLint スタイルのエラーと警告を報告します。 |
lint-errors | ESLint スタイルのエラーを警告なしで報告します。 |
lint-fix | スタイルエラーを自動的に修正しようとします。 |
watch | ソース コードが変更された場合は、 /dist 内のコア ファイルを再ビルドします。 npm link に役立ちます。 |
スクリプト名 | 説明 |
---|---|
build | JS および CSS アセットの新しいセットを構築し、 /dist に出力します。 |
build:bundle | swagger-editor-bundle.js のみ (commonJS) をビルドします。 |
build:core | swagger-editor.(js|css) のみをビルドします (commonJS)。 |
build:standalone | swagger-editor-standalone-preset.js のみ (commonJS) をビルドします。 |
build:stylesheets | swagger-editor.css のみをビルドします。 |
build:es:bundle | swagger-editor-es-bundle.js のみをビルドします (es2015)。 |
build:es:bundle:core | swagger-editor-es-bundle-core.js のみをビルドします (es2015)。 |
スクリプト名 | 説明 |
---|---|
test | Node で単体テストを実行し、Cypress のエンドツーエンド テストを実行し、エラー専用モードで ESLint を実行します。 |
test:unit-mocha | Node で Mocha ベースの単体テストを実行します。 |
test:unit-jest | Node で Jest ベースの単体テストを実行します。 |
e2e | Cypress を使用してエンドツーエンドのブラウザ テストを実行します。 |
lint | ESLint テストを実行する |
test:artifact | Jest でバンドル アーティファクト テストのリストを実行する |
test:artifact:umd:bundle | swagger-editor-bundle 関数としてのエクスポートを確認する単体テストを実行します。 |
test:artifact:es:bundle | swagger-editor-es-bundle 関数としてのエクスポートを確認する単体テストを実行します。 |
test:artifact:es:bundle:core | swagger-editor-es-bundle-core エクスポートを関数として確認する単体テストを実行します。 |
$ npm i --legacy-peer-deps
Node.js と npm がインストールされている場合は、 npm start
実行して静的サーバーを起動できます。
それ以外の場合は、ブラウザでファイルシステムから直接index.html
開くことができます。
Swagger Editor のコードを変更したい場合は、 npm run dev
を介して Webpack ホットリロード開発サーバーを起動できます。
Swagger Editor は、Chrome、Safari、Firefox、Edge の最新バージョンで動作します。
移行を支援するために、3.X の現在既知の問題を以下に示します。このリストは定期的に更新され、以前のバージョンで実装されなかった機能は含まれません。
DockerHub に Docker イメージが公開されています。
これを使用するには、次のコマンドを実行します。
docker pull swaggerapi/swagger-editor
docker run -d -p 80:8080 swaggerapi/swagger-editor
これにより、マシンのポート 80 で Swagger Editor (分離モード) が実行されるため、ブラウザでhttp://localhost
に移動して開くことができます。
docker run -d -p 80:8080 -e URL="https://petstore3.swagger.io/api/v3/openapi.json" swaggerapi/swagger-editor
json
またはyaml
定義ファイルを提供できます。 docker run -d -p 80:8080 -v $(pwd):/tmp -e SWAGGER_FILE=/tmp/swagger.json swaggerapi/swagger-editor
注: URL
とSWAGGER_FILE
環境変数の両方が設定されている場合、 URL
が優先され、 SWAGGER_FILE
は無視されます。
BASE_URL
変数を介して別のベース URL を指定できます。たとえば、アプリケーションをhttp://localhost/swagger-editor/
で利用できるようにする場合は、次のようになります。 docker run -d -p 80:8080 -e BASE_URL=/swagger-editor swaggerapi/swagger-editor
PORT
変数を介して別のポートを指定できます。デフォルトは8080
です。 docker run -d -p 80:80 -e PORT=80 swaggerapi/swagger-editor
GTM
変数を介して Google タグ マネージャー ID を指定できます。 docker run -d -p 80:8080 -e GTM=GTM-XXXXXX swaggerapi/swagger-editor
次の環境変数を使用して、Swagger エディターで使用されるさまざまなエンドポイントをカスタマイズすることもできます。たとえば、これは独自の Swagger ジェネレーター サーバーがある場合に役立ちます。
環境変数 | デフォルト値 |
---|---|
URL_SWAGGER2_GENERATOR | https://generator.swagger.io/api/swagger.json |
URL_OAS3_GENERATOR | https://generator3.swagger.io/openapi.json |
URL_SWAGGER2_CONVERTER | https://converter.swagger.io/api/convert |
Codegen 機能 (サーバーの生成およびクライアントの生成) を使用せずに Swagger エディターをローカルで実行する場合は、上記の環境変数をnull
( URL_SWAGGER2_CONVERTER=null
) に設定できます。
マシン上でチェックアウトされたコードを使用して Docker イメージを構築して実行するには、プロジェクトのルート ディレクトリから次のコマンドを実行します。
# Install npm packages (if needed)
npm install
# Build the app
npm run build
# Build an image
docker build -t swagger-editor .
# Run the container
docker run -d -p 80:8080 swagger-editor
ブラウザでhttp://localhost
に移動すると、アプリを表示できます。
OpenAPI ドキュメントのインポート
貢献する
重要
古いバージョンとは、特にReact >=17 <18
を指します。
デフォルトでは、swagger-editor@4 npm パッケージには最新バージョンの React@18 が付属しています。古いバージョンの React ではswagger-editor@4 npm パッケージを使用することができます。
私のアプリケーションがswagger-editor@4 npm パッケージと統合され、[email protected] を使用しているとします。
React バージョンを使用するためにswagger-editor@4
npm パッケージが必要であることを通知するには、npm オーバーライドを使用する必要があります。
{
"dependencies" : {
"react" : " =17.0.2 " ,
"react-dom" : " =17.0.2 "
},
"overrides" : {
"swagger-editor" : {
"react" : " $react " ,
"react" : " $react-dom " ,
"react-redux" : " ^8 "
}
}
}
注記
React および ReactDOM オーバーライドは、依存関係への参照として定義されます。 reverse-redux@9 はReact >= 18
のみをサポートするため、 react-redux@8を使用する必要があります。
特定の React バージョンを使用する必要があることをswagger-editor@4
npm パッケージに通知するには、糸の解像度を使用する必要があります。
{
"dependencies" : {
"react" : " 17.0.2 " ,
"react-dom" : " 17.0.2 "
},
"resolutions" : {
"swagger-editor/react" : " 17.0.2 " ,
"swagger-editor/react-dom" : " 17.0.2 " ,
"swagger-editor/react-redux" : " ^8 "
}
}
注記
React および ReactDOM の解決は、依存関係への参照として定義できません。残念ながら、 yarn はnpmのように$react
や$react-dom
ようなエイリアスをサポートしていません。正確なバージョンを指定する必要があります。
セキュリティ関連の問題や脆弱性がある場合は、公開の問題トラッカーを使用する代わりに、[email protected] に電子メールを送信して開示してください。