EndpointGenerator is a Roslyn Source Generator to add methods to call marked minimal api methods.
https://nuget.org/packages/EndpointGenerator/
public static class Basic
{
[EndpointGenerator.EndpointBuilder]
public static void Simple(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder builder) =>
builder.MapGet("/simple", () => TypedResults.Ok("Hello World"));
[EndpointGenerator.EndpointBuilder]
public static void Grouped(Microsoft.AspNetCore.Routing.RouteGroupBuilder builder) =>
builder.MapGet("/grouped", () => TypedResults.Ok("Hello World"));
[EndpointGenerator.EndpointGroupBuilder("prefix")]
public static void GroupedWithPrefix(Microsoft.AspNetCore.Routing.RouteGroupBuilder builder) =>
builder.MapGet("/grouped", () => TypedResults.Ok("Hello World"));
}
// The name will be "Map[AssemblyName]Endpoints"
public static IEndpointRouteBuilder MapEndpointGeneratorExampleEndpoints(this IEndpointRouteBuilder builder)
{
Basic.Simple(builder);
var group = builder.MapGroup("").WithName("Basic");
Basic.Grouped(group);
group = builder.MapGroup("prefix").WithName("Basic");
Basic.GroupedWithPrefix(group);
return builder;
}
var builder = WebApplication.CreateBuilder();
var app = builder.Build();
app.MapEndpointGeneratorExampleEndpoints();
app.Run();