我想修改为我的MVC应用程序自动生成的Swagger架构对象名称。
例如,我有许多实体,例如可以通过我们的REST端点访问的EmployeeModel
或CompanyModel
个对象
但是,Swagger定义不必或不希望在每个实体名称后面包含单词“Model”。它们应该只被称为员工或公司 - 参见屏幕截图中的示例。
答案 0 :(得分:2)
您必须使用SwaggerConfig.cs
方法中EnableSwagger
文件中提供的 SchemaId 功能,如下所示:
c.SchemaId(t =>
{
c.SchemaId(t => t.FullName.EndsWith("Model") ? t.FullName.Replace("Model", String.Empty) : t.FullName);
});
此方法允许您覆盖Swashbuckle默认行为并正确设置复杂类型名称。
我的示例直接解决了您的项目名称的" Model" 部分的removela,但可能正在使用更复杂的设置。
答案 1 :(得分:0)
你用什么库来建立你的摇摆不定的shema?看看Swashbuckle。这允许为您的应用程序自动构建swagger shema(通过使用xml文档)并且可以灵活地进行自定义。请参阅" 修改生成的架构"在文档中。