From 605431c15d0d1393c94a2c5417bd787b620a3dd1 Mon Sep 17 00:00:00 2001 From: gtitov Date: Sat, 23 Oct 2021 23:10:09 +0300 Subject: [PATCH] Add gzip --- main.py | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/main.py b/main.py index 95d63b7..9b54845 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,7 @@ from fastapi import FastAPI from fastapi.responses import JSONResponse from fastapi.middleware.cors import CORSMiddleware # CORS +from fastapi.middleware.gzip import GZipMiddleware # gZip from enum import Enum @@ -16,6 +17,8 @@ class ParameterName(str, Enum): app = FastAPI() +app.add_middleware(GZipMiddleware, minimum_size=1000) # gZip + origins = [ # CORS "*", ] @@ -100,15 +103,20 @@ async def get_stations_parameter_values(parameter: ParameterName, start_datetime """ cur.execute( - f"""SELECT + """SELECT station_id, datetime, value, forecast FROM stations_all_params JOIN parameters ON stations_all_params.parameter = parameters.parameter_id - WHERE parameter_name = '{parameter}' AND datetime >= strftime('%s', '{start_datetime}') AND datetime < strftime('%s', '{end_datetime}') - """ + WHERE parameter_name = :parameter AND datetime >= strftime('%s', :start_datetime) AND datetime < strftime('%s', :end_datetime) + """, + { + "parameter": parameter, + "start_datetime": start_datetime, + "end_datetime": end_datetime + } ) stations_values = cur.fetchall() @@ -141,13 +149,18 @@ async def get_one_station_values(station_id: int, start_datetime: datetime, end_ """ cur.execute( - f"""SELECT + """SELECT datetime, parameter, value FROM stations_all_params - WHERE station_id = {station_id} AND datetime >= strftime('%s', '{start_datetime}') AND datetime < strftime('%s', '{end_datetime}') - """ + WHERE station_id = :station_id AND datetime >= strftime('%s', :start_datetime) AND datetime < strftime('%s', :end_datetime) + """, + { + "station_id": station_id, + "start_datetime": start_datetime, + "end_datetime": end_datetime + } ) one_station_values = cur.fetchall() @@ -215,15 +228,20 @@ async def get_net_parameter_values(parameter: ParameterName, start_datetime: dat """ cur.execute( - f"""SELECT + """SELECT grid_id, datetime, param_value, forecast FROM net_all_params JOIN parameters ON net_all_params.parameter = parameters.parameter_id - WHERE parameter_name = '{parameter}' AND datetime >= strftime('%s', '{start_datetime}') AND datetime < strftime('%s', '{end_datetime}') - """ + WHERE parameter_name = :parameter AND datetime >= strftime('%s', :start_datetime) AND datetime < strftime('%s', :end_datetime) + """, + { + "parameter": parameter, + "start_datetime": start_datetime, + "end_datetime": end_datetime + } ) net_values = cur.fetchall()