@@ -25,15 +25,15 @@ where
25
25
pub path : Option < String > ,
26
26
#[ serde( with = "http_method" ) ]
27
27
pub http_method : Method ,
28
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
28
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
29
29
#[ serde( serialize_with = "serialize_headers" ) ]
30
30
pub headers : HeaderMap ,
31
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
31
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
32
32
#[ serde( serialize_with = "serialize_multi_value_headers" ) ]
33
33
pub multi_value_headers : HeaderMap ,
34
- #[ serde( default ) ]
34
+ #[ serde( default , deserialize_with = "query_map::deserialize_empty" ) ]
35
35
pub query_string_parameters : QueryMap ,
36
- #[ serde( default ) ]
36
+ #[ serde( default , deserialize_with = "query_map::deserialize_empty" ) ]
37
37
pub multi_value_query_string_parameters : QueryMap ,
38
38
#[ serde( deserialize_with = "deserialize_lambda_map" ) ]
39
39
#[ serde( default ) ]
@@ -56,10 +56,10 @@ where
56
56
#[ serde( rename_all = "camelCase" ) ]
57
57
pub struct ApiGatewayProxyResponse {
58
58
pub status_code : i64 ,
59
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
59
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
60
60
#[ serde( serialize_with = "serialize_headers" ) ]
61
61
pub headers : HeaderMap ,
62
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
62
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
63
63
#[ serde( serialize_with = "serialize_multi_value_headers" ) ]
64
64
pub multi_value_headers : HeaderMap ,
65
65
#[ serde( skip_serializing_if = "Option::is_none" ) ]
@@ -138,10 +138,10 @@ pub struct ApiGatewayV2httpRequest {
138
138
#[ serde( default ) ]
139
139
pub raw_query_string : Option < String > ,
140
140
pub cookies : Option < Vec < String > > ,
141
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
141
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
142
142
#[ serde( serialize_with = "serialize_headers" ) ]
143
143
pub headers : HeaderMap ,
144
- #[ serde( default ) ]
144
+ #[ serde( default , deserialize_with = "query_map::deserialize_empty" ) ]
145
145
pub query_string_parameters : QueryMap ,
146
146
#[ serde( deserialize_with = "deserialize_lambda_map" ) ]
147
147
#[ serde( default ) ]
@@ -284,10 +284,10 @@ pub struct ApiGatewayV2httpRequestContextHttpDescription {
284
284
#[ serde( rename_all = "camelCase" ) ]
285
285
pub struct ApiGatewayV2httpResponse {
286
286
pub status_code : i64 ,
287
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
287
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
288
288
#[ serde( serialize_with = "serialize_headers" ) ]
289
289
pub headers : HeaderMap ,
290
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
290
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
291
291
#[ serde( serialize_with = "serialize_multi_value_headers" ) ]
292
292
pub multi_value_headers : HeaderMap ,
293
293
#[ serde( skip_serializing_if = "Option::is_none" ) ]
@@ -365,15 +365,15 @@ where
365
365
#[ serde( serialize_with = "http_method::serialize_optional" ) ]
366
366
#[ serde( skip_serializing_if = "Option::is_none" ) ]
367
367
pub http_method : Option < Method > ,
368
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
368
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
369
369
#[ serde( serialize_with = "serialize_headers" ) ]
370
370
pub headers : HeaderMap ,
371
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
371
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
372
372
#[ serde( serialize_with = "serialize_multi_value_headers" ) ]
373
373
pub multi_value_headers : HeaderMap ,
374
- #[ serde( default ) ]
374
+ #[ serde( default , deserialize_with = "query_map::deserialize_empty" ) ]
375
375
pub query_string_parameters : QueryMap ,
376
- #[ serde( default ) ]
376
+ #[ serde( default , deserialize_with = "query_map::deserialize_empty" ) ]
377
377
pub multi_value_query_string_parameters : QueryMap ,
378
378
#[ serde( deserialize_with = "deserialize_lambda_map" ) ]
379
379
#[ serde( default ) ]
@@ -630,15 +630,15 @@ pub struct ApiGatewayCustomAuthorizerRequestTypeRequest {
630
630
pub path : Option < String > ,
631
631
#[ serde( with = "http_method" ) ]
632
632
pub http_method : Method ,
633
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
633
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
634
634
#[ serde( serialize_with = "serialize_headers" ) ]
635
635
pub headers : HeaderMap ,
636
- #[ serde( deserialize_with = "http_serde::header_map::deserialize " , default ) ]
636
+ #[ serde( deserialize_with = "deserialize_headers " , default ) ]
637
637
#[ serde( serialize_with = "serialize_multi_value_headers" ) ]
638
638
pub multi_value_headers : HeaderMap ,
639
- #[ serde( default ) ]
639
+ #[ serde( default , deserialize_with = "query_map::deserialize_empty" ) ]
640
640
pub query_string_parameters : QueryMap ,
641
- #[ serde( default ) ]
641
+ #[ serde( default , deserialize_with = "query_map::deserialize_empty" ) ]
642
642
pub multi_value_query_string_parameters : QueryMap ,
643
643
#[ serde( deserialize_with = "deserialize_lambda_map" ) ]
644
644
#[ serde( default ) ]
@@ -831,4 +831,14 @@ mod test {
831
831
serde_json:: from_slice ( output. as_bytes ( ) ) . unwrap ( ) ;
832
832
assert_eq ! ( parsed, reparsed) ;
833
833
}
834
+
835
+ #[ test]
836
+ #[ cfg( feature = "apigw" ) ]
837
+ fn example_apigw_console_test_request ( ) {
838
+ let data = include_bytes ! ( "../generated/fixtures/example-apigw-console-test-request.json" ) ;
839
+ let parsed: ApiGatewayProxyRequest = serde_json:: from_slice ( data) . unwrap ( ) ;
840
+ let output: String = serde_json:: to_string ( & parsed) . unwrap ( ) ;
841
+ let reparsed: ApiGatewayProxyRequest = serde_json:: from_slice ( output. as_bytes ( ) ) . unwrap ( ) ;
842
+ assert_eq ! ( parsed, reparsed) ;
843
+ }
834
844
}
0 commit comments