我正在开发一个 .net core Web 应用程序。我正在使用 swagger 并且我已经做了所有必要的调整。不幸的是它不起作用,我只是看到No operations defined in spec!
在 swagger 输出页面中。
swagger 文件包含/swagger/v1/swagger.json
有以下内容:
{
"swagger": "2.0",
"info": {
"version": "v1",
"title": "Something"
},
"paths": {},
"definitions": {}
}
我想在 swagger 输出页面中查看我的控制器及其操作。
经过一些研究,我发现我的问题是在 .NetCore2.1 中使用 swagger 和 OData。
我找到了这个问题的解决方案。
首先我添加了以下两个 Nuget 包:
Swashbuckle.AspNetCore
Swashbuckle.AspNetCore.Annotations
然后,我在 Startup.cs 中添加了以下代码
services.AddMvc(options => {
foreach (var outputFormatter in
options.OutputFormatters.OfType<ODataOutputFormatter>().Where(_ =>
_.SupportedMediaTypes.Count == 0))
{
outputFormatter.SupportedMediaTypes.Add(new
MediaTypeHeaderValue("application/prs.odatatestxx-odata"));
}
foreach (var inputFormatter in
options.InputFormatters.OfType<ODataInputFormatter>().Where(_ =>
_.SupportedMediaTypes.Count == 0))
{
inputFormatter.SupportedMediaTypes.Add(new
MediaTypeHeaderValue("application/prs.odatatestxx-odata"));
}
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
我在控制器中添加了以下代码行:
[ApiExplorerSettings(IgnoreApi = false)]
请注意,它对我有用,但可能需要更多的研究来了解最终的副作用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)