diff --git a/examples/api-datadisplay/api_datadisplay/main.py b/examples/api-datadisplay/api_datadisplay/main.py index 8e81435..d115e92 100644 --- a/examples/api-datadisplay/api_datadisplay/main.py +++ b/examples/api-datadisplay/api_datadisplay/main.py @@ -1,29 +1,56 @@ from fastapi import FastAPI, Header, Path from pydantic import BaseModel from typing import List +from random import randint +from starlette.routing import Route -app = FastAPI() +app = FastAPI( + title='Capacity API', description='API for returning metric data.', + version='1.0.0', redoc_url='/documentation' +) class MetricResponse(BaseModel): - data: List = [1, 2, 3] - metrics: str + data: List[int] + time: List[int] + metric: str @app.get("/metrics/{metric}", response_model=MetricResponse) -def get_metrics( +def get_metric_data( metric: str = Path( ..., title='Metric', - description='The metric needed. Must be one of "bets", "deposits" or ' - '"registrations"', + description='A data metric. Valid metrics are ["bets", ' + '"deposits", "registrations"]', regex=r'^(bets$)|(deposits$)|(registrations$)', ), earliest: str = Header(None, title='Earliest time',), ): - var = MetricResponse(metrics='s') - return {'metric': 's'} + """ + Will return metric data for a timespan. + """ + # do something + time = [] + data = [] + + for i in range(0, 10): + time.append(randint(1582238840, 1582238890)) + data.append(randint(1, 5000)) + + return { + 'metric': metric, + 'time': time, + 'data': data, + } + + +def test(request): + return 'request' + + +app.route('/test', [test]) class Item(BaseModel):