Fast-API Response catalog for pre-computed query
Project description
Akvo-ResponseGrouper
Fast-API Response catalog for pre-computed query
Install
$ pip install AkvoResponseGrouper
Schema Requirements
Please follow the required schema before using AkvoResponseGrouper.
Usage
- Database Migration
Database migration is the first required step for AkvoResponseGrouper to work. Use the akvo-responsegrouper CLI to migrate all data sources with JSON configuration files to generate Materialized Views that AkvoResponseGrouper can then use.
$ akvo-responsegrouper
usage: akvo-responsegrouper [-h] [-c CONFIG] [-d]
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
akvo-responsegrouper -c <json_file_config>
-d, --drop Drop the ar_category view table
- Router
To get the new endpoint provided by AkvoResponseGrouper, import the collection route to the App by:
from fastapi import FastAPI
from AkvoResponseGrouper.routes import collection_route
app = FastAPI(
root_path="/",
title="Akvo Response Grouper Demo",
)
app.include_router(collection_route)
@app.get("/", tags=["Dev"])
def read_main():
return "OK"
- Query
Development
Run Dev Containers
The dev environment contains two containers: FastAPI backend and PostGres db, to run:
docker compose up -d
Before go to the next step, wait until the service started at http://localhost:5000.
Seed Necessary Data
In order to debug the data itself. We need to seed the example form and fake datapoints
docker compose exec backend python -m script.seeder_form
docker compose exec backend python -m script.seeder_datapoint <number_of_datapoint>
Migration
Dev environment uses contents that is available in Akvo-ResponseGrouper/src/AkvoResponseGrouper
. To create the Category Materialized View via CLI in dev environment:
Upgrade:
python -m AkvoResponseGrouper.cli.migrate -c './sources/category.json'
After upgrade, you can see "AkvoResponseGrouper - Collection" is available in API docs, ussualy http://locahhost:5000/docs (Depends on the root path api).
Downgrade:
python -m AkvoResponseGrouper.cli.migrate -c './sources/category.json'
Teardown
docker compose down -v
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file AkvoResponseGrouper-1.2.0.tar.gz
.
File metadata
- Download URL: AkvoResponseGrouper-1.2.0.tar.gz
- Upload date:
- Size: 25.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4614032372d5e23dc7c8ebab5697ab42aa6f92c7bd743e7454350e5a5ff15747 |
|
MD5 | a42834d1d2f1987568d787896eb27da5 |
|
BLAKE2b-256 | f98c4c9849746cc51c1cd1cc68ff26205dc6286e88a653785e749c3218e70813 |
File details
Details for the file AkvoResponseGrouper-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: AkvoResponseGrouper-1.2.0-py3-none-any.whl
- Upload date:
- Size: 26.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45fc7459a604653ad2efa659a4e23fa41817bb270b3157535cae2b92119c51d9 |
|
MD5 | 3b9e67abfd93543cb59a4aab22cba1bf |
|
BLAKE2b-256 | c8e99f10364e8b22f2e9f5b2e9ca72c750b7809e1294944c7bf35bd01f41aa3d |