ASP.NET Core - Swashbuckle 未创建 swagger.json 文件

c++JS

1个回答

写回答

cy199319

2025-06-27 23:50

+ 关注

JS
JS

使用 Swashbuckle 生成 ASP.NET Core 的 Swagger 文档

在开发 ASP.NET Core 项目时,我们经常需要为我们的 API 提供文档。而 Swagger 是一个流行的工具,它可以自动生成和展示 API 的文档。而为了在 ASP.NET Core 中使用 Swagger,我们可以使用 Swashbuckle 这个开源库。

Swashbuckle 是一个用于生成 Swagger 文档的库,它可以帮助我们轻松地将我们的 API 文档化,并提供一个友好的界面供开发人员和用户查看和测试 API。然而,有时我们可能会遇到一个问题,就是在使用 Swashbuckle 时无法创建 swagger.JSon 文件。

问题描述

当我们按照 Swashbuckle 的文档和教程进行配置后,我们期望能够在项目中生成一个 swagger.JSon 文件。然而,有时候我们会发现 swagger.JSon 文件并没有被正确地生成出来,这可能导致我们无法使用 Swagger 来查看和测试我们的 API。

解决方法

要解决这个问题,我们可以尝试以下几个步骤:

1. 确保正确配置 Swashbuckle:首先,我们需要确保我们已经正确地配置了 Swashbuckle。我们可以通过在 Startup.cs 文件的 ConfigureServices 方法中添加以下代码来配置 Swashbuckle:

csharp

services.AddSwaggerGen(c =>

{

c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });

});

2. 检查 Swagger 中间件的使用:我们还需要检查我们是否正确地使用了 Swagger 中间件。在 Configure 方法中,我们应该添加以下代码:

csharp

app.UseSwagger();

app.UseSwaggerUI(c =>

{

c.SwaggerEndpoint("/swagger/v1/swagger.JSon", "My API V1");

});

3. 清除生成文件并重新构建:如果我们已经正确地配置了 Swashbuckle,但 swagger.JSon 文件仍然没有被生成出来,我们可以尝试清除项目的生成文件并重新构建项目。有时候,旧的生成文件可能会导致 Swashbuckle 无法正确生成新的 swagger.JSon 文件。

如果我们按照上述步骤进行检查和调试后仍然无法解决问题,我们可以尝试搜索 Swashbuckle 的 GitHub 页面或 Stack Overflow 上的相关问题,看看是否有其他人遇到了类似的问题,并找到了解决方法。

实例代码

为了更好地理解如何使用 Swashbuckle 生成 ASP.NET Core 的 Swagger 文档,以下是一个简单的示例代码:

csharp

using Microsoft.AspNetcore.Builder;

using Microsoft.AspNetcore.Hosting;

using Microsoft.Extensions.Configuration;

using Microsoft.Extensions.DependencyInjection;

using Microsoft.Extensions.Hosting;

using Microsoft.OpenApi.Models;

namespace SwaggerDemo

{

public class Startup

{

public Startup(IConfiguration configuration)

{

Configuration = configuration;

}

public IConfiguration Configuration { get; }

public void ConfigureServices(IServiceCollection services)

{

services.AddControllers();

services.AddSwaggerGen(c =>

{

c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });

});

}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

{

if (env.IsDevelopment())

{

app.UseDeveloperExceptionPage();

}

app.UseRouting();

app.UseSwagger();

app.UseSwaggerUI(c =>

{

c.SwaggerEndpoint("/swagger/v1/swagger.JSon", "My API V1");

});

app.UseEndpoints(endpoints =>

{

endpoints.MapControllers();

});

}

}

}

在以上示例代码中,我们首先在 ConfigureServices 方法中配置了 Swashbuckle,然后在 Configure 方法中使用了 Swagger 中间件。最后,我们还使用了 MapControllers 方法来将 API 控制器映射到路由。

在这个简单的示例中,我们可以使用 Swashbuckle 快速生成一个名为 "My API" 的 Swagger 文档,版本号为 "v1"。我们只需根据自己的实际需求进行配置,即可生成适合我们项目的 Swagger 文档。

通过 Swashbuckle,我们可以轻松地为我们的 ASP.NET Core 项目生成 Swagger 文档,并提供一个友好的界面供开发人员和用户查看和测试 API。当我们遇到无法生成 swagger.JSon 文件的问题时,可以按照上述步骤进行检查和调试,以解决问题。希望本文对你理解如何使用 Swashbuckle 生成 ASP.NET Core 的 Swagger 文档有所帮助。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号