- Use Swashbuckle (Swagger UI) api explorer with zero midifications to your code
- Get full Swagger extensibility as in MVC
v1 https://www.nuget.org/packages/AzureFunctions.Worker.Extensions.AspNetCore.ApiExplorer
v2 https://www.nuget.org/packages/AzureFunctions.Worker.Extensions.Swashbuckle
Microsoft suggest to use FunctionsApplicationBuilder over generic HostBuilder that is why v2 package will only support this api.
v1
var host = new HostBuilder()
.ConfigureServices((hostingContext, services) =>
{
// additional worker services configuration
})
.ConfigureFunctionsWebApplication(worker =>
{
worker
.AddAspNetCoreIntegration()
.AddMvcOptions(mvcOptions =>
{
// additional MVC options customization
});
worker.UseAspNetCoreMiddleware(app =>
{
app.UseFunctionSwaggerUI(); // <--- magic happens here
});
})
.Build();v2
var builder = FunctionsApplication.CreateBuilder(args);
// should be used for HTTP triggered APIs
builder.ConfigureFunctionsWebApplication();
// should be called after "ConfigureFunctionsWebApplication"
builder
.ConfigureAspNetCoreMvcIntegration(mvcBuilder =>
{
// additional MVC builder customization
mvcBuilder.AddMvcOptions(mvcOptions => { });
})
.UseAspNetCoreMiddleware(app =>
{
app.UseFunctionSwaggerUI(); // <--- magic happens here
});