An open API service indexing awesome lists of open source software.

https://github.com/juftin/zoo

An asynchronous zoo API, powered by FastAPI, SQLAlchemy 2.0, Pydantic v2, and Alembic
https://github.com/juftin/zoo

alembic async fastapi pydantic python sqlalchemy

Last synced: 11 months ago
JSON representation

An asynchronous zoo API, powered by FastAPI, SQLAlchemy 2.0, Pydantic v2, and Alembic

Awesome Lists containing this project

README

          






ZOO


An asynchronous zoo API, powered by [FastAPI](https://fastapi.tiangolo.com/),
[SQLAlchemy 2.0](https://www.sqlalchemy.org/), [Pydantic v2](https://docs.pydantic.dev/latest/),
and [Alembic](https://alembic.sqlalchemy.org/en/latest/).

### [Documentation](https://juftin.com/zoo/)

## What is this?

`zoo` is a simple API example project that allows you to manage a zoo.
It uses all the basic building blocks of a modern API, including

- [x] Asynchronous ASGI Framework ([FastAPI](https://fastapi.tiangolo.com/))
- [x] Production Ready Server ([Uvicorn](https://www.uvicorn.org/))
- [x] Modern SQL ORM ([SQLAlchemy 2.0](https://www.sqlalchemy.org/))
- [x] Data Validation ([Pydantic v2](https://docs.pydantic.dev/latest/))
- [x] Authentication ([fastapi-users](https://frankie567.github.io/fastapi-users/))
- [x] Database Migrations ([Alembic](https://alembic.sqlalchemy.org/en/latest/))
- [x] Docker Images ([Docker](https://www.docker.com/))
- [x] Documentation ([mkdocs-material](https://squidfunk.github.io/mkdocs-material/))
- [x] Testing ([pytest](https://docs.pytest.org/))
- [x] CI/CD ([GitHub Actions](https://github.com/features/actions))
- [x] Python Environment Management ([hatch](https://github.com/pypa/hatch))
- [x] Release Automation ([semantic-release](https://github.com/semantic-release/semantic-release))
- [ ] Serverless Deployment ([Mangum](https://magnum-ci.com/) + [AWS Lambda](https://aws.amazon.com/lambda/))
- [ ] Worker Queues ([Celery](https://docs.celeryproject.org/en/stable/))
- [ ] API Caching ([redis](https://redis.io/))
- [ ] What else?

This project is meant to be a starting point for building your own API,
it outlines the basic structure of an API project and provides a few
examples of how to implement common features.