招摇错误:schemaIds 冲突:检测到类型 A 和 B 的重复 schemaIds

2024-02-20

使用Web API并使用swashbuckle生成swagger文档, 我在两个不同的命名空间中定义了两个具有相同名称的不同类。当我在浏览器中打开 swagger 页面时,它显示

schemaId 冲突:检测到类型 A 和 B 的 schemaId 重复。请参阅配置设置 - “UseFullTypeNameInSchemaIds”以获取潜在的解决方法

完整消息:

500 : {"Message":"发生错误。","ExceptionMessage":"schemaIds 冲突:检测到类型 A 和 B 的 schemaId 重复。请参阅配置设置 - \"UseFullTypeNameInSchemaIds\" 了解潜在的解决方法","ExceptionType ":"System.InvalidOperationException","StackTrace":" 在 Swashbuckle.Swagger.SchemaRegistry.CreateRefSchema(类型类型)\r\n 在 Swashbuckle.Swagger.SchemaRegistry.CreateInlineSchema(类型类型)\r\n 在 Swashbuckle.Swagger。 SchemaRegistry.b__1f(JsonProperty prop)\r\n 位于 System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable1 source, Func2键选择器、功能2 elementSelector, IEqualityComparer1 个比较器)\r\n 在 Swashbuckle.Swagger.SchemaRegistry.CreateObjectSchema(JsonObjectContract jsonContract)\r\n 在 Swashbuckle.Swagger.SchemaRegistry.CreateDefinitionSchema(Type type)\r\n 在 Swashbuckle.Swagger.SchemaRegistry.GetOrRegister(Type type) )\r\n 在 Swashbuckle.Swagger.SwaggerGenerator.CreateOperation(ApiDescription apiDesc, SchemaRegistry schemaRegistry)\r\n 在 Swashbuckle.Swagger.SwaggerGenerator.CreatePathItem(IEnumerable)1 apiDescriptions, SchemaRegistry schemaRegistry)\r\n at Swashbuckle.Swagger.SwaggerGenerator.<>c__DisplayClass7.<GetSwagger>b__4(IGrouping2 组)\r\n 在 System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable1 source, Func2键选择器、功能2 elementSelector, IEqualityComparer1 个比较器)\r\n 位于 Swashbuckle.Swagger.SwaggerGenerator.GetSwagger(String rootUrl, String apiVersion)\r\n 位于 Swashbuckle.Application.SwaggerDocsHandler.SendAsync(HttpRequestMessage request, CancellationToken CancellationToken)\r\n 位于 System.Net。 Http.HttpMessageInvoker.SendAsync(HttpRequestMessage 请求,CancellationToken CancellationToken)\r\n 在 System.Web.Http.Dispatcher.HttpRoutingDispatcher.SendAsync(HttpRequestMessage 请求,CancellationToken CancellationToken)\r\n 在 System.Net.Http.DelegatingHandler.SendAsync( HttpRequestMessage 请求,CancellationToken CancellationToken)\r\n at System.Web.Http.HttpServer.d__0.MoveNext()"}http://localhost:24215/swagger/docs/v1 http://localhost:24215/swagger/docs/v1

我不想更改班级名称。我该如何修复它?


swagger JSON 中的每个类都必须有一个唯一的 schemaId。

Swashbuckler 尝试仅使用类名作为简单的 schemaId,但是如果您在不同的命名空间中有两个具有相同名称的类(如您所做的那样),则这将不起作用。

正如错误所示,您可以使用配置设置“UseFullTypeNameInSchemaIds*”作为潜在的解决方法(更新:在最新版本中不可用)

在较新的版本中,您可以通过选项实现相同的行为。自定义SchemaId(x => x.FullName)。

这是一个例子:

   services.ConfigureSwaggerGen(options =>
   {
       //your custom configuration goes here

...

  // UseFullTypeNameInSchemaIds replacement for .NET Core
       options.CustomSchemaIds(x => x.FullName);
   });

了解更多信息http://wegotcode.com/microsoft/swagger-fix-for-dotnetcore/ http://wegotcode.com/microsoft/swagger-fix-for-dotnetcore/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

招摇错误:schemaIds 冲突:检测到类型 A 和 B 的重复 schemaIds 的相关文章

随机推荐

  • 向不同的操作提交相同的表单

    取决于哪个submit用户选择的按钮 Cat and Dog在本例中 我想使用正确的 http 动词将表单提交到正确的控制器操作 在本例中 只有一个文本输入 如果用户按下Cat我想POST to Cats create and if Dog
  • 如何将 tumblr 中的横幅链接到另一个网站?

    我正在尝试将我的 tumblr 博客中的横幅链接到另一个网站 我不知道该怎么做 以下是我在自定义 html 选项卡中找到的代码 但我似乎无法使我的横幅可点击 我到底应该在哪里添加链接的网站地址 任何帮助将不胜感激 div class blo
  • Io异常:网络适配器无法建立连接

    我正在使用 tomcat 应用程序服务器并连接到 Oracle DB 有一个文件叫ojdbc14 10g jar在项目中 在 jsp 页面中 我打开与数据库的连接并获取一些信息 但是 当我刷新页面时 我多次收到以下错误 java sql S
  • Laravel 重写引导模板

    因此 我在项目中添加了自定义 app css 并且使用引导模板 现在 当我在 app css 中创建新的按钮样式时 它可以在任何地方访问 因为我获得了主模板 并且其他页面正在扩展它 所以在每个页面上 但是当我在 app css 中覆盖引导主
  • android.support.v7.app.MediaRouteButton 不显示

    这是我的布局
  • 如何在pygame中将三角形旋转一定角度?

    我需要在屏幕中心旋转一个三角形 不是图像 我看到其他人回答了这个问题 但三角形不能指向上方 我尝试过使用其他人的功能 但他们认为只能部分工作 就像我上面提到的功能一样 import pygame disp pygame display se
  • 正则表达式性能:Boost 与 Perl [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 perl 和 boost 正则表达式之间的性能比较 我需要设计一段非常依赖正则表达式的代码
  • WPF:如何以原始尺寸显示图像?

    我在 WPF 中显示图像时遇到问题 这是我的代码
  • 以编程方式更改布局的前景色

    我想更改线性布局的前景色 这是我的代码 layout setForeground new ColorDrawable getResources getColor R color svbackclr 但是这个调用需要最低 api 级别 23
  • SQL 关键字“ISABOUT”[已弃用?] 应该替换为什么?

    在 MS SQL 全文搜索中 我在查询中使用 ISABOUT 例如 这应该返回前 10 名ProductIDs PK 与RANK领域在ProductDetails Table SELECT FROM CONTAINSTABLE Produc
  • 连接浏览器和广告商而不在多点连接中显示警报消息

    目前我正在探索多点连接框架 我的应用程序广告商和浏览器中有 2 个选项 因此 当用户在一台设备上启动浏览器 而在另一台设备上启动广告商时 他们应该能够找到彼此 当该设备出现在浏览器中并且用户点击它时 将向拥有广告设备的用户显示警报 允许他们
  • 角度测试台覆盖模块不工作

    当对测试夹具使用以下配置时 我收到关于找不到标签的抱怨 替换为MockSelectionToolComponent直接在AppModule工作正常 所以一定是别的东西 Add the imported module to the impor
  • MySQL服务器消失了

    我在 MySql 服务器上执行此查询 它给出了 MySQL 服务器已消失 错误 在下面的查询中 我的两个表都有超过 1000000 行 SELECT a tab 11 10 url as url a tab 11 10 c5 as t1 a
  • 如何比较两个雄辩的集合并从另一个集合中删除其中的内容?

    我有所有门的集合 以及当前用户有权访问的门的集合 如何比较两者并从所有门集合中删除用户已有权访问的门 doors Door orderBy name asc gt get users doors user gt doors 这是两个集合 U
  • 删除或禁用 RAP/RCP EditorPart 上显示的“X”关闭按钮

    我正在开发一个显示 ViewPart 和 EditorPart 的 RAP 应用程序 我试图找到一种方法来防止 所有 编辑器部分关闭 有没有办法删除或禁用 编辑器部分显示的 X 关闭按钮 你可以这样做 我写的大致相同 例如 http wik
  • 如何启用即席分布式查询

    当我运行查询时OPENROWSET在 SQL Server 2000 中它可以工作 但 SQL Server 2008 中的相同查询会生成以下错误 SQL Server 阻止了对组件 临时分布式查询 的语句 OpenRowset OpenD
  • 动态 Telerik RadOutlookBar 标题与 ItemTemplate 出现错误

    我正在尝试以 MVVM 方式使用 Telerik RadControls 但遇到了一些奇怪的问题 RadOutlookBar 背后的 Viewmodel 有一个 ViewModel 集合 每个 ViewModel 都有一个 Title 字符
  • 如何播放本地文件中的音频?

    我想播放下载的本地音频文件 但它不播放 class AVPlayerService static let instance AVPlayerService private var audioPlayer AVPlayer public we
  • 是否有 CGPath 的替代方案可以计算给定位置路径上的点?

    对于动画计时算法 我需要提供一条路径作为曲线 可能是两端都有控制点的贝塞尔曲线 问题是似乎不可能计算 CGPath 上的点 因为 CGPathRef 是不透明的 Apple 也没有提供计算路径上的点的机制 是否有一个库或实用程序类可以计算贝
  • 招摇错误:schemaIds 冲突:检测到类型 A 和 B 的重复 schemaIds

    使用Web API并使用swashbuckle生成swagger文档 我在两个不同的命名空间中定义了两个具有相同名称的不同类 当我在浏览器中打开 swagger 页面时 它显示 schemaId 冲突 检测到类型 A 和 B 的 schem