@@ -16,20 +16,23 @@ class Parser:
1616 external_doc_builder : ExternalDocBuilder
1717 path_builder : PathBuilder
1818 security_builder : SecurityBuilder
19+ schemas_builder : SchemasBuilder
1920
2021 def __init__ (self ,
2122 info_builder : InfoBuilder ,
2223 server_builder : ServerBuilder ,
2324 tags_builder : TagBuilder ,
2425 external_doc_builder : ExternalDocBuilder ,
2526 path_builder : PathBuilder ,
26- security_builder : SecurityBuilder ) -> None :
27+ security_builder : SecurityBuilder ,
28+ schemas_builder : SchemasBuilder ) -> None :
2729 self .info_builder = info_builder
2830 self .server_builder = server_builder
2931 self .tag_builder = tags_builder
3032 self .external_doc_builder = external_doc_builder
3133 self .path_builder = path_builder
3234 self .security_builder = security_builder
35+ self .schemas_builder = schemas_builder
3336
3437 def load_specification (self , data : dict ) -> Specification :
3538 """Load OpenAPI Specification object from a file or a remote URI.
@@ -67,6 +70,9 @@ def load_specification(self, data: dict) -> Specification:
6770 if data .get ('components' ) and data ['components' ].get ('securitySchemes' ):
6871 attrs ["security_schemas" ] = self .security_builder .build_collection (data ['components' ]['securitySchemes' ])
6972
73+ if data .get ('components' ) and data ['components' ].get ('schemas' ):
74+ attrs ["schemas" ] = self .schemas_builder .build_collection (data ['components' ]['schemas' ])
75+
7076 logger .debug ("Specification parsed successfully" )
7177
7278 return Specification (** attrs )
@@ -83,6 +89,7 @@ def _create_parser() -> Parser:
8389 content_builder = ContentBuilder (schema_factory )
8490 header_builder = HeaderBuilder (schema_factory )
8591 parameter_builder = ParameterBuilder (schema_factory )
92+ schemas_builder = SchemasBuilder (schema_factory )
8693 response_builder = ResponseBuilder (content_builder , header_builder )
8794 request_builder = RequestBuilder (content_builder )
8895 operation_builder = OperationBuilder (response_builder ,
@@ -98,7 +105,8 @@ def _create_parser() -> Parser:
98105 tag_builder ,
99106 external_doc_builder ,
100107 path_builder ,
101- security_builder )
108+ security_builder ,
109+ schemas_builder )
102110
103111
104112def parse (uri : str ) -> Specification :
0 commit comments