I am planning to build a python wrapper around a rest API.
- I want to support friendly functions, with autocompletion in the editor.
- I want 100% test coverage
- I want the package to be modular, so that, any changes to API, can be easily reflected
- I want to support both async and normal methods (the core will be implemented thru async, but there will be a wrapper for those who don't want to use async)
import asyncio from library import Api api = Api() async def do_job(): thing = await api.get_thing() print(thing) asyncio.run(do_job())
from library.sync import Api thing = api.get_thing() print(thing)
the data that will be passed to the functions should be validated. planning to use pydantic.
planning to create a sub-package
library.models to contain all the modules defining the models.
how should I design the entire thing? how should I structure the project?
best practices? guides?
Top comments (2)
Here is a 15-part guide that I wrote that addresses 3 of your 4 requirements: pretzellogix.net/2021/12/08/how-to...
Eventually, I'll get around to writing a few extra chapters on how to make
asyncmethods. In the meantime, I think this will get you started!
You could guide yourself by the code of FastAPI github.com/tiangolo/fastapi They are using wrapers so maybe could be useful