To Get AWS API Stage Variables with a C# dotnet 6 minimal rest api


I am writing this because I could not find how to get the AWS Api Gateway stage variables of a dotnet 6 minimal rest api anywhere on the internet, so please see the below code snipett

app.MapGet("/test", ([FromQueryAttribute] string name, HttpRequest request) =>
{
    Log.Information("Name {name}", name);
    try
    {
        var req = (APIGatewayProxyRequest)request.HttpContext.Items.Where(i => i.Key == "LambdaRequestObject").Select(s => s.Value).FirstOrDefault();
        if (req.StageVariables != null)
        {
            foreach (var stgVar in req.StageVariables)
            {
                Log.Information("stage v value: {key}, {value}", stgVar.Key, stgVar.Value);
            }
        }
        else
        {
            Log.Information("stage v is null");

        }
    }
    catch (Exception)
    {
        Log.Error("Error in request");
    }

    // after get the stage variable
    //var r = RestService.For<IIpAddressApi>(stagevariableUrl);

    return name;
}).WithName("Test");


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.