diff --git a/frigate/api/app.py b/frigate/api/app.py index 9d76ea417..66e2522cd 100644 --- a/frigate/api/app.py +++ b/frigate/api/app.py @@ -10,7 +10,7 @@ from functools import reduce from typing import Optional import requests -from fastapi import APIRouter, Path +from fastapi import APIRouter, Path, Request, Response from fastapi.encoders import jsonable_encoder from fastapi.responses import JSONResponse from flask import Blueprint, Flask, current_app, jsonify, make_response, request @@ -109,15 +109,15 @@ def create_app( return app -@bp.route("/") +@router.get("/", tags=[Tags.app]) def is_healthy(): return "Frigate is running. Alive and healthy!" -@bp.route("/config/schema.json") -def config_schema(): - return current_app.response_class( - current_app.frigate_config.schema_json(), mimetype="application/json" +@router.get("/config/schema.json", tags=[Tags.app]) +def config_schema(request: Request): + return Response( + content=request.app.frigate_config.schema_json(), media_type="application/json" ) diff --git a/frigate/api/defs/tags.py b/frigate/api/defs/tags.py index 5e1d12d24..8a47de1c0 100644 --- a/frigate/api/defs/tags.py +++ b/frigate/api/defs/tags.py @@ -2,6 +2,7 @@ from enum import Enum class Tags(Enum): + app = "App" preview = "Preview" logs = "Logs" media = "Media" diff --git a/frigate/api/fastapi_app.py b/frigate/api/fastapi_app.py index 9828aa426..bda938f2b 100644 --- a/frigate/api/fastapi_app.py +++ b/frigate/api/fastapi_app.py @@ -3,7 +3,6 @@ import logging from fastapi import FastAPI from frigate.api import app as main_app -from frigate.api.defs.tags import Tags from frigate.api import preview from frigate.plus import PlusApi from frigate.ptz.onvif import OnvifController @@ -13,23 +12,6 @@ from frigate.storage import StorageMaintainer logger = logging.getLogger(__name__) -# https://fastapi.tiangolo.com/tutorial/metadata/#use-your-tags -tags_metadata = [ - { - "name": Tags.preview, - "description": "Preview routes", - }, - { - "name": Tags.logs, - "description": "Logs routes", - }, - { - "name": Tags.media, - "description": "Media routes", - }, -] - - def create_fastapi_app( frigate_config, detected_frames_processor, @@ -39,7 +21,7 @@ def create_fastapi_app( stats_emitter: StatsEmitter, ): logger.info("Starting FastAPI app") - app = FastAPI(debug=False, tags_metadata=tags_metadata) + app = FastAPI(debug=False) # Routes app.include_router(main_app.router) app.include_router(preview.router)