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
Hashes for AkvoResponseGrouper-1.1.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40998c4e95a49f20ad143df78b43d644e304cb796500154158cc1e415c5a3025 |
|
MD5 | b6ccf68169e47c5527f3d7731af8415a |
|
BLAKE2b-256 | 7e259854025127bf9248a4889a6759ba21e6a6120b6d82bbc0f9fe9805c91772 |
Hashes for AkvoResponseGrouper-1.1.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fc12c2807623709684e9fc87c5b56c9869cb650c51464164204e91f8e2bcac9 |
|
MD5 | 02d9323b1a5c2c6033f4b2dfae9319e7 |
|
BLAKE2b-256 | 8935ff31c361fc1326ccb8668f0d5c14f4c5f067ed9f676351db0dd39f927719 |