[解決済み] swagger エラー。SchemaIds が矛盾しています。タイプ A と B で重複した schemaIds が検出されました。
質問
Web API を使用し、swashbuckle を使用して swagger ドキュメントを生成しています。 私は2つの異なる名前空間に同じ名前で2つの異なるクラスを定義しました。ブラウザでswaggerページを開くと、次のように表示されます。
conflicting schemaIds: 回避策として、設定 - "UseFullTypeNameInSchemaIds"を参照してください。
メッセージの全文を表示します。
<ブロッククオート
500 : {"Message":"An error has occurred.","ExceptionMessage":"Conflicting schemaIds.タイプAとタイプBで重複したスキーマIDを検出しました。Duplicate schemaIds detected for types A and B. See the config setting - UseFullTypeNameInSchemaIds" for a potential workaround","ExceptionType":"System.InvalidOperationException","StackTrace":" at Swashbuckle.StackTrace" at swagger.SchemaRegacy";Duplicate schemaIds detected for types A and B. For the Duplicate schemaIds. at Swashbuckle.SchemaRegistry.CreateRefSchema(Type type)\rn at Swashbuckle.Swagger.SchemaRegistry.CreateInlineSchema(Type type)\rn at Swashbuckle.Swagger.SchemaRegistry.b__1f(JsonProperty prop)\rng at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable)
1 source, Func
2 keySelector, Func
2 elementSelector, IEqualityComparer
1 comparer)\rn at Swashbuckle.Swagger.SchemaRegistry.CreateObjectSchema(JsonObjectContract jsonContract)\rn at Swashbuckle.Swagger.SchemaRegistry.CreateDefinitionSchema(Type type)\rn at Swashbuckle.Swagger.SchemaRegistry.CreateDefinity(Type type type)\rn at Swashbuckle.SchemaRegistry.CreateDefinitionSchema(Type type type))\rrr (@Swashback.Swagger.SchemaRgistry.CreateDefinitionSchema(Type type)) GetOrRegister(Type type)\n at Swashbuckle.Swagger.SwaggerGenerator.CreateOperation(ApiDescription apiDesc, SchemaRegistry schemaRegistry)\rng at Swashbuckle.Swagger.SwaggerGenerator.CreatePathItem(IEnumerable)
1 apiDescriptions, SchemaRegistry schemaRegistry)\r\n at Swashbuckle.Swagger.SwaggerGenerator.<>c__DisplayClass7.<GetSwagger>b__4(IGrouping
2 group)\ at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable
1 source, Func
2 keySelector, Func
2 elementSelector, IEqualityComparer
1 comparer)\n at Swashbuckle.Swagger.SwaggerGenerator.GetSwagger(String rootUrl, String apiVersion)\n at Swashbuckle.Application.SwaggerDocsHandler.SendSync(HttpRequestMessage request, CancellationToken))\[email protected](String rootUrl, String apiVersion)) SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\n at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\n at System.Net.Http.HttpMessageInvoker.SendAsync(HttpMessage request, CancellationToken cancellToken) System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\at System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\at System.Web.Http.HttpServer.d__0.MoveNext()"} は、SYNAME.Web.Dispatcher.HttpRoutingDispatcher.SendAsync (HttpRequestMessage request, CancellationToken cancellationToken )で表示されます。
http://localhost:24215/swagger/docs/v1
クラスの名前を変えたくありません。どうすれば直せますか?
どのように解決するのですか?
swaggerのコンフィグでようやく方法を見つけました。以下のように
App_Start\SwaggerConfig.cs
ファイルを開き
EnableSwagger
というラムダ式の下に以下の行を追加します。
c.SchemaId(x => x.FullName);
フルコードはこんな感じです。
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
// your configs...
c.SchemaId(x => x.FullName);
// other configs...
})
.EnableSwaggerUi(c =>
// ....
});
関連
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】C#で四捨五入する方法
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み] Swagger not loading - Failed to load API definition: フェッチエラーは未定義です