Могу ли я использовать Swashbuckle для генерации Swagger UI из проекта Blazor c # - PullRequest
0 голосов
/ 24 сентября 2019

Могу ли я использовать Swashbuckle для генерации Swagger UI из проекта с Blazor C # Я знаю, что swaschbuckle требует MVC, и вы не можете иметь их обоих в одном проекте.Но есть ли способ обойти это.

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

Я решил проблему с помощью шаблона Balzor для приложения W ASP.Net core 3.0.И следуя этому руководству: Начало работы с swashbuckle ASP.Net Core 3.0

Я использовал предварительную версию 5.0.0-rc3 Swashbuckle, так как версия 4.0.1 не запускалась при запуске.

Мой стартовый список для всех, кто столкнулся с такой же проблемой:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {

        services.AddControllers();
        // Register the Swagger generator, defining 1 or more Swagger documents
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
        });
        services.AddRazorPages();
        services.AddServerSideBlazor();
        services.AddScoped<AuthenticationStateProvider, RevalidatingIdentityAuthenticationStateProvider<IdentityUser>>();
        services.AddSingleton<WeatherForecastService>();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseDatabaseErrorPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();
        }

        // Enable middleware to serve generated Swagger as a JSON endpoint.
        app.UseSwagger();

        // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
        // specifying the Swagger JSON endpoint.
        app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
        });

        app.UseHttpsRedirection();
        app.UseStaticFiles();

        app.UseRouting();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
            endpoints.MapBlazorHub();
            endpoints.MapFallbackToPage("/_Host");
        });
    }
}
0 голосов
/ 24 сентября 2019

Swagger в основном предназначен для предоставления ваших API-интерфейсов в пользовательском интерфейсе, и если есть концепция контроллера API, тогда да, вы определенно можете использовать Swagger для API-интерфейсов Blazor ....

Пожалуйста, пройдите по приведенному ниже URL, и я довольноуверен, что это поможет вам получить то, что вы хотите ..

Если вы все еще сталкиваетесь с какой-либо проблемой, пожалуйста, дайте мне знать, я постараюсь дать вам практический пример этого ...

https://www.talkingdotnet.com/create-a-crud-app-using-blazor-and-asp-net-core/

...