跳至主要內容

3.8 集成Swagger

linguicheng...小于 1 分钟

简介

网关集成Swagger之后可以显示所有微服务的接口文档,统一文档入口。

Program代码

首先,需要你的微服务集成Swagger之后生成swagger.json文件,网关通过读取各微服务的swagger.json文件来生成Swagger文档。

using Microsoft.AspNetCore.Builder;
using Wing;
using Wing.ServiceProvider;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddSwaggerGen();
builder.Host.AddWing(builder => builder.AddConsul());

builder.Services.AddWing()
                .AddPersistence()
.AddGateWay(null, null, app =>
{
    var services = App.DiscoveryService.Get(HealthStatus.Healthy).GetAwaiter().GetResult();
    app.UseSwagger()
       .UseSwaggerUI(c =>
        {
            services.ForEach(s => c.SwaggerEndpoint($"{s.ServiceAddress}/swagger/v1/swagger.json", s.Name));
        });

});
var app = builder.Build();

app.Run();
上次编辑于:
贡献者: linguicheng