@@ -6,7 +6,7 @@ use crate::middleware::{BodyLimitLayer, LayerStack, MiddlewareLayer, DEFAULT_BOD
66use crate :: response:: IntoResponse ;
77use crate :: router:: { MethodRouter , Router } ;
88use crate :: server:: Server ;
9- use std:: collections:: HashMap ;
9+ use std:: collections:: { BTreeMap , HashMap } ;
1010use tracing_subscriber:: { layer:: SubscriberExt , util:: SubscriberInitExt , EnvFilter } ;
1111
1212/// Main application builder for RustAPI
@@ -309,7 +309,7 @@ impl RustApi {
309309 /// RustApi::new()
310310 /// .register_schema::<User>()
311311 /// ```
312- pub fn register_schema < T : for < ' a > rustapi_openapi:: Schema < ' a > > ( mut self ) -> Self {
312+ pub fn register_schema < T : rustapi_openapi:: schema :: RustApiSchema > ( mut self ) -> Self {
313313 self . openapi_spec = self . openapi_spec . register :: < T > ( ) ;
314314 self
315315 }
@@ -388,7 +388,7 @@ impl RustApi {
388388 // Register operations in OpenAPI spec
389389 for ( method, op) in & method_router. operations {
390390 let mut op = op. clone ( ) ;
391- add_path_params_to_operation ( path, & mut op, & std :: collections :: HashMap :: new ( ) ) ;
391+ add_path_params_to_operation ( path, & mut op, & BTreeMap :: new ( ) ) ;
392392 self . openapi_spec = self . openapi_spec . path ( path, method. as_str ( ) , op) ;
393393 }
394394
@@ -520,11 +520,7 @@ impl RustApi {
520520 // Register each operation in the OpenAPI spec
521521 for ( method, op) in & method_router. operations {
522522 let mut op = op. clone ( ) ;
523- add_path_params_to_operation (
524- & prefixed_path,
525- & mut op,
526- & std:: collections:: HashMap :: new ( ) ,
527- ) ;
523+ add_path_params_to_operation ( & prefixed_path, & mut op, & BTreeMap :: new ( ) ) ;
528524 self . openapi_spec = self . openapi_spec . path ( & prefixed_path, method. as_str ( ) , op) ;
529525 }
530526 }
@@ -1124,7 +1120,7 @@ impl RustApi {
11241120fn add_path_params_to_operation (
11251121 path : & str ,
11261122 op : & mut rustapi_openapi:: Operation ,
1127- param_schemas : & std :: collections :: HashMap < String , String > ,
1123+ param_schemas : & BTreeMap < String , String > ,
11281124) {
11291125 let mut params: Vec < String > = Vec :: new ( ) ;
11301126 let mut in_brace = false ;
@@ -1156,7 +1152,7 @@ fn add_path_params_to_operation(
11561152 return ;
11571153 }
11581154
1159- let op_params = op. parameters . get_or_insert_with ( Vec :: new ) ;
1155+ let op_params = & mut op. parameters ;
11601156
11611157 for name in params {
11621158 let already = op_params
@@ -1178,7 +1174,8 @@ fn add_path_params_to_operation(
11781174 location : "path" . to_string ( ) ,
11791175 required : true ,
11801176 description : None ,
1181- schema,
1177+ deprecated : None ,
1178+ schema : Some ( schema) ,
11821179 } ) ;
11831180 }
11841181}
@@ -1647,12 +1644,12 @@ mod tests {
16471644 let get_op = path_item. get. as_ref( ) . unwrap( ) ;
16481645
16491646 prop_assert!(
1650- get_op. parameters. is_some ( ) ,
1647+ ! get_op. parameters. is_empty ( ) ,
16511648 "Operation should have parameters for path '{}'" ,
16521649 expected_openapi_path
16531650 ) ;
16541651
1655- let params = get_op. parameters. as_ref ( ) . unwrap ( ) ;
1652+ let params = & get_op. parameters;
16561653 let has_param = params. iter( ) . any( |p| p. name == param_name && p. location == "path" ) ;
16571654 prop_assert!(
16581655 has_param,
@@ -1915,8 +1912,8 @@ mod tests {
19151912
19161913 // Verify path parameter is added
19171914 let get_user_op = user_path. get . as_ref ( ) . unwrap ( ) ;
1918- assert ! ( get_user_op. parameters. is_some ( ) , "Should have parameters" ) ;
1919- let params = get_user_op. parameters . as_ref ( ) . unwrap ( ) ;
1915+ assert ! ( ! get_user_op. parameters. is_empty ( ) , "Should have parameters" ) ;
1916+ let params = & get_user_op. parameters ;
19201917 assert ! (
19211918 params
19221919 . iter( )
@@ -2068,8 +2065,8 @@ mod tests {
20682065
20692066 // Verify path parameter is added
20702067 let get_op = get_path. get . as_ref ( ) . unwrap ( ) ;
2071- assert ! ( get_op. parameters. is_some ( ) , "Should have parameters" ) ;
2072- let params = get_op. parameters . as_ref ( ) . unwrap ( ) ;
2068+ assert ! ( ! get_op. parameters. is_empty ( ) , "Should have parameters" ) ;
2069+ let params = & get_op. parameters ;
20732070 assert ! (
20742071 params
20752072 . iter( )
0 commit comments