相关疑难解决方法(0)

如何在ASP.NET核心中更改Swagger的基本URL

默认情况下,当您在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)

c# asp.net swagger asp.net-core

17
推荐指数
3
解决办法
2万
查看次数

如何在swagger中为.Net Core Web API设置基本路径属性

我在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.但是这没用.有没有人知道如何解决这个问题?

c# swagger swashbuckle asp.net-core asp.net-core-webapi

8
推荐指数
2
解决办法
5297
查看次数