OpenAPITools / OpenAPITools/openapi-generator
[BUG][PYTHON] Getting a `file` response in OpenAPI v3 / python
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 26.8k
- Forks
- 7.7k
- PR merge metrics
- PR metrics pending
Description
Bug Report Checklist
- Have you provided a full/minimal spec to reproduce the issue?
- Have you validated the input using an OpenAPI validator (example)?
- Have you tested with the latest master to confirm the issue still exists?
- Have you searched for related issues/PRs?
- What's the actual output vs expected output?
- [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description
I'm trying to define a file response:. In the generated python code, I see that for a file type, the function __deserialize_file is called, and it's exactly what I want: it save the HTTP response body as a temporary file on the filesystem and returns its path.
The problem is that the response_type file is never defined, it's always a bytearray.
How can I tell the python wrapper generator to write a file response to a temporary file (calling __deserialize_path) ?
openapi-generator version
7.11.0
OpenAPI declaration file content or url
openapi: 3.1.1
info:
description: repro
title: repro
version: '1.0.0'
paths:
/content:
get:
description: Returns data for all given object ids
responses:
'200':
content:
application/png:
schema:
type: string
format: binary
description: The file response
Generation Details
pip install openapi-generator-cli[jdk4py]
openapi-generator-cli.exe generate -i .\repro.yml -g python -o src
Steps to reproduce
Related issues/PRs
Suggest a fix
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the provided OpenAPI 3.1.1 declaration and reproduce the issue using the shown openapi-generator-cli command with the python generator. Inspect the generated Python response handling and compare the bytearray response type with the existing file deserialization path. Done means a binary file response is written to a temporary file and its path is returned.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100