快速数据库查询的后端API
项目描述
Fast Query Store :zap
本地运行
运行此项目需要python
,git
,docker
和docker-compose
。
设置
git clone <repository-url>
cd fast-query-store
cp env.example .env
source .env
安装依赖项
python -m venv env
source env/bin/activate
pip install -r requirements.txt
导出配置变量
fast-query-store 将查找包含查询信息的.json
文件。环境变量queries_file_path
指示该文件的位置。
export queries_file_path=/path/to/queries.json
示例queries.json
文件
{
"slug-1": {
"query": "SELECT * FROM table_1",
"db_url": "postgresql:///..."
},
"slug-2": {
"query": "SELECT COUNT(1) FROM table_1",
"db_url": "sqlite:///..."
},
"slug-3": {
"query": "SELECT * FROM table_3",
"db_url": "${DATABASE_URL}"
}
}
注意:还可以使用环境变量设置db_url
。
运行它
export queries_file_path=queries.json
uvicorn app.main:app --workers 2 --host 0.0.0.0 --port 8000
获取可用的查询缩写
GET http://localhost:8000/
HTTP/1.1 200 OK
content-length: 73
content-type: application/json
date: Fri, 14 May 2021 12:47:37 GMT
server: uvicorn
{
"slugs": [
"slug-1",
"slug-2",
"slug-3"
]
}
执行查询
GET http://localhost:8000/query/slug-1
HTTP/1.1 200 OK
content-length: 151
content-type: application/json
date: Fri, 14 May 2021 12:53:09 GMT
server: uvicorn
{
"result_set": [
{
"name": "Cheese",
"price": 9.99,
"product_no": 1
},
{
"name": "Bread",
"price": 1.99,
"product_no": 2
},
{
"name": "Milk",
"price": 2.99,
"product_no": 3
}
]
}
运行测试
pip install -r requirements-development.txt
source .env
docker-compose f docker-compose.yml up -d
pytest -v