NetCoreUsefullEndpoints-2–MVP
So let’s start the implementation for user / error / environment.
The only difficulty resides in the fact that IEndpointRouteBuilder is not defined into a usual library, but the dll csproj must contain
<ItemGroup> <FrameworkReference Include="Microsoft.AspNetCore.App" /> </ItemGroup>
Otherwise , it is work as usual. For example, for seeing a user
public static void MapUser(this IEndpointRouteBuilder route) { ArgumentNullException.ThrowIfNull(route); route.MapGet("api/usefull/user/", (HttpContext httpContext) => { return Results.Ok(httpContext.User?.Identity?.Name); }).RequiresAuthorization(); }
More difficult was for Environment – that is a Static class. Hopefully, there is a NUGET for this – https://www.nuget.org/packages/rscg_static – that allows to generate an interface from a static class. So I have added this
<ItemGroup> <FrameworkReference Include="Microsoft.AspNetCore.App" /> </ItemGroup>
And code for generating the interface
public partial class Helper { public partial ISystem_Environment FromStaticEnvironment(); }
So, when I want to get the values from Environment, I use this
public static void MapUsefullEnvironment(this IEndpointRouteBuilder route, string? corsPolicy = null, string[]? authorization = null) { ArgumentNullException.ThrowIfNull(route); var rh=route.MapGet("api/usefull/environment/", (HttpContext httpContext) => { return Results.Ok(new Helper().FromStaticEnvironment()); }); rh.AddDefault(corsPolicy, authorization); }
You can see
-
as Swagger at https://netcoreusefullendpoints.azurewebsites.net/swagger
-
As BlocklyAutomation at https://netcoreusefullendpoints.azurewebsites.net/BlocklyAutomation
-
As package at https://www.nuget.org/packages/NetCoreUsefullEndpoints