public static IResourceBuilder WithReference()

in src/Aspire.Hosting.AWS/Lambda/APIGatewayExtensions.cs [66:86]


    public static IResourceBuilder<APIGatewayEmulatorResource> WithReference(this IResourceBuilder<APIGatewayEmulatorResource> builder, IResourceBuilder<LambdaProjectResource> lambda, Method httpMethod, string path)
    {
        LambdaEmulatorAnnotation? lambdaEmulatorAnnotation = null;
        if (builder.ApplicationBuilder.Resources.FirstOrDefault(x => x.TryGetLastAnnotation<LambdaEmulatorAnnotation>(out lambdaEmulatorAnnotation)) == null ||
            lambdaEmulatorAnnotation == null)
        {
            return builder;
        }

        builder.WithReference(lambdaEmulatorAnnotation.Endpoint);

        builder.WithEnvironment(context =>
        {
            var envName = "APIGATEWAY_EMULATOR_ROUTE_CONFIG_" + lambda.Resource.Name;
            var config = new RouteConfig(lambda.Resource.Name, lambdaEmulatorAnnotation.Endpoint.Url, httpMethod, path);
            var configJson = JsonSerializer.Serialize(config);
            context.EnvironmentVariables[envName] = configJson;
        });

        return builder;
    }