@@ -132,7 +132,7 @@ public static async Task ExecuteSnapstartInitRequests(string jsonRequest, int ti
132132
133133 private class LambdaSnapstartInitializerHttpMessageHandler : HttpMessageHandler
134134 {
135- private LambdaEventSource _lambdaEventSource ;
135+ private readonly LambdaEventSource _lambdaEventSource ;
136136
137137 public static Uri BaseUri { get ; } = new Uri ( "http://localhost" ) ;
138138
@@ -145,7 +145,7 @@ public LambdaSnapstartInitializerHttpMessageHandler(LambdaEventSource lambdaEven
145145
146146 protected override async Task < HttpResponseMessage > SendAsync ( HttpRequestMessage request , CancellationToken cancellationToken )
147147 {
148- if ( null == request ? . RequestUri )
148+ if ( null == request . RequestUri )
149149 return new HttpResponseMessage ( HttpStatusCode . OK ) ;
150150
151151 var duckRequest = new
@@ -157,7 +157,7 @@ protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage
157157 kvp => kvp . Value . FirstOrDefault ( ) ,
158158 StringComparer . OrdinalIgnoreCase ) ,
159159 HttpMethod = request . Method . ToString ( ) ,
160- Path = request . RequestUri ? . MakeRelativeUri ( BaseUri ) . ToString ( ) ?? string . Empty ,
160+ Path = "/" + BaseUri . MakeRelativeUri ( request . RequestUri ) ,
161161 RawQuery = request . RequestUri ? . Query ,
162162 Query = QueryHelpers . ParseNullableQuery ( request . RequestUri ? . Query )
163163 } ;
@@ -172,21 +172,33 @@ protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage
172172 HttpMethod = duckRequest . HttpMethod ,
173173 QueryStringParameters = duckRequest . Query ? . ToDictionary ( k => k . Key , v => v . Value . ToString ( ) )
174174 } ,
175- LambdaEventSource . HttpApi => new APIGatewayProxyRequest
175+ LambdaEventSource . HttpApi => new APIGatewayHttpApiV2ProxyRequest
176176 {
177177 Body = duckRequest . Body ,
178178 Headers = duckRequest . Headers ,
179- Path = duckRequest . Path ,
180- HttpMethod = duckRequest . HttpMethod ,
181- QueryStringParameters = duckRequest . Query ? . ToDictionary ( k => k . Key , v => v . Value . ToString ( ) )
179+ RawPath = duckRequest . Path ,
180+ RequestContext = new APIGatewayHttpApiV2ProxyRequest . ProxyRequestContext
181+ {
182+ Http = new APIGatewayHttpApiV2ProxyRequest . HttpDescription
183+ {
184+ Method = duckRequest . HttpMethod ,
185+ Path = duckRequest . Path
186+ }
187+ } ,
188+ QueryStringParameters = duckRequest . Query ? . ToDictionary ( k => k . Key , v => v . Value . ToString ( ) ) ,
189+ RawQueryString = duckRequest . RawQuery
182190 } ,
183- LambdaEventSource . RestApi => new APIGatewayHttpApiV2ProxyRequest
191+ LambdaEventSource . RestApi => new APIGatewayProxyRequest
184192 {
185193 Body = duckRequest . Body ,
186194 Headers = duckRequest . Headers ,
187- RawPath = duckRequest . Path ,
188- QueryStringParameters = duckRequest . Query ? . ToDictionary ( k => k . Key , v => v . Value . ToString ( ) ) ,
189- RawQueryString = duckRequest . RawQuery
195+ Path = duckRequest . Path ,
196+ HttpMethod = duckRequest . HttpMethod ,
197+ RequestContext = new APIGatewayProxyRequest . ProxyRequestContext
198+ {
199+ HttpMethod = duckRequest . HttpMethod
200+ } ,
201+ QueryStringParameters = duckRequest . Query ? . ToDictionary ( k => k . Key , v => v . Value . ToString ( ) )
190202 } ,
191203 _ => throw new NotImplementedException (
192204 $ "Unknown { nameof ( LambdaEventSource ) } : { Enum . GetName ( _lambdaEventSource ) } ")
0 commit comments