@@ -50,6 +50,7 @@ def from_data(
5050 schemas : Schemas ,
5151 parameters : Parameters ,
5252 request_bodies : Dict [str , Union [oai .RequestBody , oai .Reference ]],
53+ responses : Dict [str , Union [oai .Response , oai .Reference ]],
5354 config : Config ,
5455 ) -> Tuple [Dict [utils .PythonIdentifier , "EndpointCollection" ], Schemas , Parameters ]:
5556 """Parse the openapi paths data to get EndpointCollections by tag"""
@@ -72,6 +73,7 @@ def from_data(
7273 schemas = schemas ,
7374 parameters = parameters ,
7475 request_bodies = request_bodies ,
76+ responses = responses ,
7577 config = config ,
7678 )
7779 # Add `PathItem` parameters
@@ -144,7 +146,12 @@ class Endpoint:
144146
145147 @staticmethod
146148 def _add_responses (
147- * , endpoint : "Endpoint" , data : oai .Responses , schemas : Schemas , config : Config
149+ * ,
150+ endpoint : "Endpoint" ,
151+ data : oai .Responses ,
152+ schemas : Schemas ,
153+ responses : Dict [str , Union [oai .Response , oai .Reference ]],
154+ config : Config ,
148155 ) -> Tuple ["Endpoint" , Schemas ]:
149156 endpoint = deepcopy (endpoint )
150157 for code , response_data in data .items ():
@@ -167,6 +174,7 @@ def _add_responses(
167174 status_code = status_code ,
168175 data = response_data ,
169176 schemas = schemas ,
177+ responses = responses ,
170178 parent_name = endpoint .name ,
171179 config = config ,
172180 )
@@ -396,6 +404,7 @@ def from_data(
396404 schemas : Schemas ,
397405 parameters : Parameters ,
398406 request_bodies : Dict [str , Union [oai .RequestBody , oai .Reference ]],
407+ responses : Dict [str , Union [oai .Response , oai .Reference ]],
399408 config : Config ,
400409 ) -> Tuple [Union ["Endpoint" , ParseError ], Schemas , Parameters ]:
401410 """Construct an endpoint from the OpenAPI data"""
@@ -424,7 +433,13 @@ def from_data(
424433 )
425434 if isinstance (result , ParseError ):
426435 return result , schemas , parameters
427- result , schemas = Endpoint ._add_responses (endpoint = result , data = data .responses , schemas = schemas , config = config )
436+ result , schemas = Endpoint ._add_responses (
437+ endpoint = result ,
438+ data = data .responses ,
439+ schemas = schemas ,
440+ responses = responses ,
441+ config = config ,
442+ )
428443 if isinstance (result , ParseError ):
429444 return result , schemas , parameters
430445 bodies , schemas = body_from_data (
@@ -514,8 +529,14 @@ def from_dict(data: Dict[str, Any], *, config: Config) -> Union["GeneratorData",
514529 config = config ,
515530 )
516531 request_bodies = (openapi .components and openapi .components .requestBodies ) or {}
532+ responses = (openapi .components and openapi .components .responses ) or {}
517533 endpoint_collections_by_tag , schemas , parameters = EndpointCollection .from_data (
518- data = openapi .paths , schemas = schemas , parameters = parameters , request_bodies = request_bodies , config = config
534+ data = openapi .paths ,
535+ schemas = schemas ,
536+ parameters = parameters ,
537+ request_bodies = request_bodies ,
538+ responses = responses ,
539+ config = config ,
519540 )
520541
521542 enums = (
0 commit comments