73

swagger-uiアプリケーションに組み込みました。

を試してみるとswagger-ui、API のドキュメントがうまく表示されますが、しばらくするとボタンにエラー アイコンが表示されます。

エラーメッセージは以下のようなものです:

[{"レベル":"エラー","メッセージ":"ファイル http://MYIP/swagger/docs/v1 から読み取れません"}]

何が原因なのかわかりません。更新すると機能し、数秒後にエラーが表示されます。

4

6 に答える 6

103

http://MYIP/swagger/docs/v1」は公開されていないと思います。

デフォルトでは、swagger ui はオンライン バリデータ online.swagger.io を使用します。Swagger URL にアクセスできない場合は、そのエラー メッセージが表示されます。

可能な解決策:

  1. 検証を無効にします。

    config.EnableSwagger().EnableSwaggerUi(c => c.DisableValidator());

  2. サイトを一般公開する

  3. バリデーターをローカルでホストします。

バリデーターはhttps://github.com/swagger-api/validator-badge#running-locallyから取得できます。

また、swaggerui にバリデーターの場所を伝える必要があります。

config.EnableSwagger().EnableSwaggerUi(c => c.SetValidatorUrl(<validator_url>));

于 2015-08-27T08:38:15.440 に答える
18

受け入れられた回答を補足するために... 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();
于 2016-04-12T18:57:43.673 に答える
2

L5-SwaggerPHP Laravel フレームワークを使用している場合は、コメントを外してください。

'validatorUrl' => null,

設定ファイルから/config/l5-swagger.php

于 2016-05-16T18:05:29.070 に答える
1

設定は私のため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;
}
于 2016-05-20T10:42:53.790 に答える