5
5
from openapi_core .schema .operations .generators import OperationsGenerator
6
6
from openapi_core .schema .parameters .generators import ParametersGenerator
7
7
from openapi_core .schema .paths .models import Path
8
+ from openapi_core .schema .servers .generators import ServersGenerator
8
9
9
10
10
11
class PathsGenerator (object ):
@@ -15,18 +16,38 @@ def __init__(self, dereferencer, schemas_registry):
15
16
16
17
def generate (self , paths ):
17
18
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 )
20
30
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
+ ),
22
39
)
23
- yield path_name , Path (path_name , list (operations ), parameters )
24
40
25
41
@property
26
42
@lru_cache ()
27
43
def operations_generator (self ):
28
44
return OperationsGenerator (self .dereferencer , self .schemas_registry )
29
45
46
+ @property
47
+ @lru_cache ()
48
+ def servers_generator (self ):
49
+ return ServersGenerator (self .dereferencer )
50
+
30
51
@property
31
52
@lru_cache ()
32
53
def parameters_generator (self ):
0 commit comments