Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/mrf345/flask_restful_api_production_example

Flask restful API production example
https://github.com/mrf345/flask_restful_api_production_example

api example flask production restful

Last synced: 10 days ago
JSON representation

Flask restful API production example

Awesome Lists containing this project

README

        

Flask restful API production example



There's a live demo of the project hosted on AWS Lambda functions.




Actions Status


Coverage Status

### Setup
##### - With docker:
Make sure `docker` and `docker-compose` are installed and run `docker-compose up`

##### - Or from the source instead:
Make sure `Python 3.7` and `pip` are installed and then:
- `pip install -r requirements/core.py`
- `DEVELOPEMENT="True" FLASK_APP="app" flask run`

##### - To run tests and linting
- Tests `make tests`
- Linting `make lint`

### Intro
##### - Features and Stack
- Swagger OpenAPI2 API with `Flask-Restx`
- Database migration with `Flask-Migrate`
- Containerized local dev environment with `Docker`
- AWS RDS and lambda deployment ready with `Zappa`
- Errors monitoring and reporting with `Sentry`
- Github actions testing, linting and deployment with `PyTest` and `Flake8`.

##### - Project structure


.
├── app.py
├── docker-compose.yml
├── Dockerfile
├── LICENSE
├── Makefile
├── migrations
│ ├── alembic.ini
│ ├── env.py
│ ├── README.md
│ ├── script.py.mako
│ └── versions
│ └── d826e674004f_.py
├── README.md
├── requester
│ ├── api
│ │ ├── auth.py
│ │ ├── endpoints
│ │ │ ├── features.py
│ │ │ ├── __init__.py
│ │ │ └── users.py
│ │ ├── __init__.py
│ │ ├── limiter.py
│ │ └── setup.py
│ ├── config.py
│ ├── constants.py
│ ├── database
│ │ ├── defaults.py
│ │ ├── __init__.py
│ │ ├── mixins.py
│ │ ├── models.py
│ │ ├── relations.py
│ │ └── setup.py
│ ├── __init__.py
│ ├── main.py
│ └── utils.py
├── requirements
│ ├── core.txt
│ ├── deploy.txt
│ └── test.txt
├── tests
│ ├── conftest.py
│ ├── features.py
│ ├── __init__.py
│ └── users.py
├── upgrade_db.sh
└── zappa_settings.json