2 ms·
Pyotr [0] is a small library I've been developing for a while, based on Starlette. In a nutshell, it takes an OpenAPI specification and turns it into an API app
by BerislavLopac 7y ago
Pyotr [0] is a small library I've been developing for a while, based on Starlette. In a nutshell, it takes an OpenAPI specification and turns it into an API application, taking care of all the routing and validation according to the spec. It is conceptually similar to connexion [1], but it supports async and is Python 3 only. There is also a client component, in the spirit of bravado [2].
[0] https://pyotr.readthedocs.io https://pyotr.readthedocs.io
[1] https://connexion.readthedocs.io/ https://connexion.readthedocs.io/
[2] https://github.com/Yelp/bravado https://github.com/Yelp/bravado
- dtkav 7y agoThis is awesome! I'm one of the community maintainers of connexion (I added openapi 3 support), but I don't have write access to the repo, and it's been really tough to get any changes landed lately. nice work!
- BerislavLopac 7y agoThank you! ^_^
- j88439h84 7y agoWhat's the difference from fastAPI? https://fastapi.tiangolo.com/ https://fastapi.tiangolo.com/
- hultner 7y agoFastAPI generates specs from code, this generates code from specs
- BerislavLopac 7y agoJust a bit of clarification: Pyotr does not generate any code, it uses the spec as configuration to construct the necessary routes at the app initialization, as well as to validate requests and responses.
- hultner 7y agoYeah didn't mean literary code generation, Python's dynamic nature makes such steps unnecessary. In a way it feels kinda lispy (in a good way) to me, data is code, small DSL for working more efficiently with specific domain.