本文主要讲述一个傻瓜-本人,经过艰辛万苦,填了各种陨石坑,最后一不小心就调试成功的喜悦,和大家分享下。
开门见山的讲故事,可以看出本文讲的就是API接口文档和版本控制的整合操作配置过程,感觉网上有说到的坑我都踩了一下,所以整理出来给以后年老不记得事的自己。
错误一:No operations defined in spec! 解决=》根本原因就是,路由并没有发现可用的路径。
错误二:Unable to render this definition。解决=》api中的Controller/Action 加入[HttpPost]或者 [HTTPGet]
错误三:访问“服务URL:端口/swagger/index.html”访问不到版本控制,版本控制页面地址应为“服务URL:端口/index.html”
下面科普天文,开始讲陨石坑的故事:
我没有安装过,不过很多网友反映Swashbuckle.AspNetCore 2.0之前的版本会有很多的不兼容情况,很多问题会出现。据网友目击报道说是这个版本的UI有问题会发生类似“No operations defined in spec! ”的问题,所以最好与时俱进使用最新版本,方便省心。
所以先呈现以下我所有已安装的包版本:
开始操作流程:
一、使用Nuget安装微软官方提供的一个可用的Api版本控制库Microsoft.AspNetCore.Mvc.Versioning。
1、使用Nuget安装Api版本控制库Versioning
2、在StartUp.cs中的ConfigureServices添加:
services.AddApiVersioning(o =>
{
o.ReportApiVersions = true;//return versions in a response header
o.DefaultApiVersion = new ApiVersion(1, 0);//default version select
o.AssumeDefaultVersionWhenUnspecified = true;//if not specifying an api version,show the default version
})