Net Core 3.1 Swagger & Versioning 整合-踩出所有陨石坑的填坑集合

本文作者分享了在Net Core 3.1中整合Swagger和API版本控制过程中遇到的问题及解决方案。包括"No operations defined in spec!"、"Unable to render this definition."等错误的解决办法,并详细介绍了安装Microsoft.AspNetCore.Mvc.Versioning库进行版本控制,以及安装Swashbuckle.AspNetCore生成Swagger文档的步骤。通过设置路由、控制器属性和Swagger配置,最终实现了成功运行并测试不同版本的API接口。
摘要由CSDN通过智能技术生成

本文主要讲述一个傻瓜-本人,经过艰辛万苦,填了各种陨石坑,最后一不小心就调试成功的喜悦,和大家分享下。

开门见山的讲故事,可以看出本文讲的就是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
            })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值