swagger-ui
アプリケーションに組み込みました。
を試してみるとswagger-ui
、API のドキュメントがうまく表示されますが、しばらくするとボタンにエラー アイコンが表示されます。
エラーメッセージは以下のようなものです:
[{"レベル":"エラー","メッセージ":"ファイル http://MYIP/swagger/docs/v1 から読み取れません"}]
何が原因なのかわかりません。更新すると機能し、数秒後にエラーが表示されます。
swagger-ui
アプリケーションに組み込みました。
を試してみるとswagger-ui
、API のドキュメントがうまく表示されますが、しばらくするとボタンにエラー アイコンが表示されます。
エラーメッセージは以下のようなものです:
[{"レベル":"エラー","メッセージ":"ファイル http://MYIP/swagger/docs/v1 から読み取れません"}]
何が原因なのかわかりません。更新すると機能し、数秒後にエラーが表示されます。
「http://MYIP/swagger/docs/v1」は公開されていないと思います。
デフォルトでは、swagger ui はオンライン バリデータ online.swagger.io を使用します。Swagger URL にアクセスできない場合は、そのエラー メッセージが表示されます。
可能な解決策:
検証を無効にします。
config.EnableSwagger().EnableSwaggerUi(c => c.DisableValidator());
サイトを一般公開する
バリデーターをローカルでホストします。
バリデーターはhttps://github.com/swagger-api/validator-badge#running-locallyから取得できます。
また、swaggerui にバリデーターの場所を伝える必要があります。
config.EnableSwagger().EnableSwaggerUi(c => c.SetValidatorUrl(<validator_url>));
受け入れられた回答を補足するために... SwaggerConfig.csの1行のコメントを外しました。バリデーターを無効にして、メインのswaggerページの赤いエラーを取り除きたかっただけです。
// By default, swagger-ui will validate specs against swagger.io's online validator and display the result
// in a badge at the bottom of the page. Use these options to set a different validator URL or to disable the
// feature entirely.
//c.SetValidatorUrl("http://localhost/validator");
c.DisableValidator();
L5-SwaggerでPHP Laravel フレームワークを使用している場合は、コメントを外してください。
'validatorUrl' => null,
設定ファイルから/config/l5-swagger.php
設定は私のためthis.model.validatorUrl = null;
にdist/swagger-ui.js
働いた..
// Default validator
if(window.location.protocol === 'https:') {
//this.model.validatorUrl = 'https://online.swagger.io/validator';
this.model.validatorUrl = null;
} else {
//this.model.validatorUrl = 'http://online.swagger.io/validator';
this.model.validatorUrl = null;
}