Swagger 是一个非常优秀的API文档生成工具,但也无法掩盖它的各种大坑。今天就遇到了一个问题,就是突然之间API文档不能正常显示了,接口的参数全变成了 "string" ,而且在界面的上方显示了一大堆错误,错误如下:

Resolver error at paths./api/My/GetTicket.post.requestBody.content.application/json.schema.$ref
Could not resolve reference: Could not resolve pointer: /components/schemas/Wenhua.Models.RequestModel`1[[Wenhua.Member.Models.Request+Login, Wenhua.Member, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] does not exist in document

在运行目录里看了下,提示的xml文件都是存在的,经过Google搜寻后,使用了如下的方法解决:
Program.cs 文件中在配置 Swagger 的地方做如下修改:

builder.Services.AddSwaggerGen(c =>
{
    //省略掉其他的配置代码
    //...
    //...
    c.CustomSchemaIds(x => x.FullName.Replace("+", "."));  //增加或修改该项,把原来的“.”替换成“.”
});

之后成功解决,特此记录,备忘。
以上。

Last modification:May 5, 2023
如果觉得我的文章对你有用,请随意赞赏