sanic-motor-example
December 31, 2019 · View on GitHub
Python 3+ event-loop application using Sanic as microframework and Motor in the persistence layer.

Setup Project
-
Create virtual environment (in clone directory):
python3 -m venv ./enviActivate the new environment
source ./envi/bin/activate -
Install dependencies
pip3 install -r requirements.txt -
Create .env file with the following content:
SANIC_dbhost=localhostSANIC_dbport=27017 -
Bring mongp up with docker-compose file:
docker-compose up -
Run app
make runserver-dev
.
├── api
│ ├── __init__.py
│ ├── routes.py ---> (Routes handler, configure available rest routes)
│ └── user_API.py ---> (User rest service API example)
├── docker-compose.yml ---> (Mongo service)
├── main.py ---> (Application entry point)
├── Makefile ---> (Make scripts)
├── README.md ---> (This file)
├── requirements.txt ---> (Required libs)
├── service
│ └── user_service.py ---> (User api service layer, it deals with DB)
├── tests
│ └── test_user.py ---> (Unit tests)
└── util
├── generic_except.py ---> (Util for exception handling)
├── __init__.py
└── motor_connection.py ---> (Util for DB connection handling)
Test Requests
[POST] localhost:8000/user/
Payload:
{
"first":"55555555",
"last":"1212"
}
[GET] localhost:8000/user/INSERTED-ID
Unit Tests
The directory tests has the unit tests (PyTest) files, you can invoke the test execution with the command:
pytest
DOC
Swagger URL: http://localhost:8000/swagger/