首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MVC net-core中找不到Swagger Page is 404

在MVC net-core中找不到Swagger Page is 404
EN

Stack Overflow用户
提问于 2018-05-17 04:05:43
回答 3查看 15.1K关注 0票数 8

我有一个全新的.NET-Core Web API项目,我想使用API版本控制和swagger。

当我试图查看swagger页面时,我得到了一个404。但是,模板附带的默认ValuesController可以工作。

下面是我的设置:

Startup.cs

代码语言:javascript
复制
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();

        // Add API Versioning
        services.AddApiVersioning(
            options =>
            {
                options.DefaultApiVersion = new ApiVersion(1, 0);
                options.AssumeDefaultVersionWhenUnspecified = true;
                options.ReportApiVersions = true;
            });

        // Add Swagger
        string pathToDoc = "RegistriesApi.xml";
        services.AddSwaggerGen(options =>
        {
            options.SwaggerDoc("v1",
                new Info
                {
                    Title = "Registries API",
                    Version = "v1",
                    Description = "A simple api to interact with AMA registries information",
                    TermsOfService = "None"
                });

            string filePath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, pathToDoc);
            options.IncludeXmlComments(filePath);
            options.DescribeAllEnumsAsStrings();
        });
    }
    ...
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        // Url Path Rewriter
        RewriteOptions rewriteOptions = new RewriteOptions();
        if (!env.IsDevelopment())
        {
            rewriteOptions.AddRedirectToHttps();
        }
        else
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseRewriter(rewriteOptions);

        // Use MVC
        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

        // Swagger
        app.UseSwagger(c =>
        {
            c.PreSerializeFilters.Add((swagger, httpReq) => swagger.Host = httpReq.Host.Value);
        });
        app.UseSwaggerUI(
            c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 Docs"); });
    }

ValuesController.cs

代码语言:javascript
复制
[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/values")]
public class ValuesController : Controller
{
    // GET api/values
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new[] {"value1", "value2"};
    }

    // GET api/values/5
    [HttpGet("{id}")]
    public string Get(int id)
    {
        return "value";
    }

    // POST api/values
    [HttpPost]
    public void Post([FromBody] string value)
    {
    }

    // PUT api/values/5
    [HttpPut("{id}")]
    public void Put(int id, [FromBody] string value)
    {
    }

    // DELETE api/values/5
    [HttpDelete("{id}")]
    public void Delete(int id)
    {
    }
}

另外,下面是我安装的所有库的版本:

代码语言:javascript
复制
<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.8" />
  <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="2.2.0" />
  <PackageReference Include="Swashbuckle.AspNetCore" Version="2.4.0" />
</ItemGroup>

有没有人看到我做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-01 01:16:44

创建项目时,我意外地将.vs文件夹包含在check in中。当我将它从源代码管理中移除时,无论出于什么原因,swagger又开始工作了。

我不确定这个解释是不是为了这个。

票数 18
EN

Stack Overflow用户

发布于 2021-05-03 00:21:20

对我来说,@Tyler Findlay解决方案没有奏效。但我用了一种不同的方式,对我来说很好。

重新创建项目,如果需要保护接口,请确保复选框Configure

  1. HTTPS,基于此选项,line的部分代码将通过Nuget添加到startup.cs
  2. Install Swashbuckle.AspNetCore.Swagger中。
    1. 通过Nuget安装Swashbuckle.AspNetCore.SwaggerGen & Swashbuckle.AspNetCore.SwaggerUI。请记住,AspNetCore.Swagger在内部安装SwaggerGen和UI,但您可以通过Nuget添加它。
    2. 编译并运行该项目。

希望这能帮助到一些人。

更新: URL可以是HTTP://localhost:/swagger/ui

票数 0
EN

Stack Overflow用户

发布于 2021-10-16 17:16:41

我刚刚删除了解决方案根目录中的.vs文件夹。现在它起作用了..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50379112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档