OpenAPITools / OpenAPITools/openapi-generator
[REQ][PYTHON-FASTAPI] Generate Synchronous Python Fastapi Server
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 26.8k
- Forks
- 7.7k
- PR merge metrics
- PR metrics pending
Description
Is your feature request related to a problem? Please describe.
The python-fastapi generator only generates asynchronous server code, and there is no option to generate synchronous server code.
Describe the solution you'd like
Since FastAPI supports both asynchronous and synchronous programming, it would be valuable if the OpenAPI Generator could choose which one to generate (if sync or async).
Currently, when using the python-fastapi generator for the server, it does not provide an option to generate both async and sync implementations. It only generates asynchronous code for the server.
In contrast, the python generator for the client allows flexibility in choosing between synchronous and asynchronous implementations depending on the selected HTTP library. For example, when generating code with urllib3 library, the client code is generated as synchronous, whereas when generating it with asyncio library, the client code is generated as asynchronous.
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 by locating the python-fastapi server generator, its generation options, and the templates that currently produce asynchronous code. Compare its configuration with the python client's synchronous and asynchronous library choices. Done means users can select synchronous or asynchronous FastAPI output and the generated server consistently follows that choice.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- fastapi, python
- Domain
- api, backend, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100