55from openapi_core .schema .operations .generators import OperationsGenerator
66from openapi_core .schema .parameters .generators import ParametersGenerator
77from openapi_core .schema .paths .models import Path
8+ from openapi_core .schema .servers .generators import ServersGenerator
89
910
1011class PathsGenerator (object ):
@@ -15,18 +16,38 @@ def __init__(self, dereferencer, schemas_registry):
1516
1617 def generate (self , paths ):
1718 paths_deref = self .dereferencer .dereference (paths )
18- for path_name , path in iteritems (paths_deref ):
19- operations = self .operations_generator .generate (path_name , path )
19+ for path_name , path_spec in iteritems (paths_deref ):
20+ path_deref = self .dereferencer .dereference (path_spec )
21+
22+ parameters_list = path_deref .get ('parameters' , [])
23+ summary = path_deref .get ('summary' )
24+ description = path_deref .get ('description' )
25+ servers_spec = path_deref .get ('servers' , [])
26+
27+ operations = self .operations_generator .generate (
28+ path_name , path_deref )
29+ servers = self .servers_generator .generate (servers_spec )
2030 parameters = self .parameters_generator .generate_from_list (
21- path .get ('parameters' , {})
31+ parameters_list )
32+ yield (
33+ path_name ,
34+ Path (
35+ path_name , list (operations ), parameters = list (parameters ),
36+ summary = summary , description = description ,
37+ servers = list (servers ),
38+ ),
2239 )
23- yield path_name , Path (path_name , list (operations ), parameters )
2440
2541 @property
2642 @lru_cache ()
2743 def operations_generator (self ):
2844 return OperationsGenerator (self .dereferencer , self .schemas_registry )
2945
46+ @property
47+ @lru_cache ()
48+ def servers_generator (self ):
49+ return ServersGenerator (self .dereferencer )
50+
3051 @property
3152 @lru_cache ()
3253 def parameters_generator (self ):
0 commit comments