默认情况下,当您在ASP.NET Core项目中启用swagger时,它在url上可用:
http://localhost:<random_port>/swagger/ui
Run Code Online (Sandbox Code Playgroud)
我想使用不同的基本网址而不是/swagger/ui.我如何/在哪里配置?
我发现对于旧版本,您可以配置RootUrl但在ASP.NET Core中没有类似的方法:
.EnableSwagger(c =>
{
c.RootUrl(req => myCustomBasePath);
});
Run Code Online (Sandbox Code Playgroud) 我在ASP.Net Core(版本1.1.2)中构建了一个Web API,并使用Swashbuckle.AspNetCore生成swagger定义.
下面是自动生成的swagger定义的一部分.我想改变路径,所以它不包括/ api/ApiName,但它将包含在basePath中,现在是/
{
"swagger": "2.0",
"info": {
"version": "v1",
"title": "ApiName.V1"
},
"host": "ApiUrl",
"basePath": "/api/ApiName",
"paths": {
"/": {
"get": {
"tags": [
"ApiName"
],
.........
Run Code Online (Sandbox Code Playgroud)
所以我想得到的是:
{
"swagger": "2.0",
"info": {
"version": "v1",
"title": "ApiName.V1"
},
"host": "ApiUrl",
"basePath": "/",
"paths": {
"/api/ApiName": {
"get": {
"tags": [
"ApiName"
],
.........
Run Code Online (Sandbox Code Playgroud)
我们有一些其他的API没有用.Net Core编写,并且它通过添加默认路由修复了同样的问题.我试图通过删除API控制器顶部的路由在.Net核心上做同样的事情
[Route("api/[Controller]")]
Run Code Online (Sandbox Code Playgroud)
并将其添加到Startup.cs.但是这没用.有没有人知道如何解决这个问题?