From 17f9eef5516776d7df77a5094dd94a0a915f1ed9 Mon Sep 17 00:00:00 2001 From: Michael Genson <71845777+michael-genson@users.noreply.github.com> Date: Mon, 8 Jul 2024 05:01:31 -0500 Subject: [PATCH] docs: Update API Docs (#3856) --- mealie/app.py | 11 +++-------- mealie/routes/_base/base_controllers.py | 2 +- mealie/routes/admin/admin_analytics.py | 2 +- .../routes/groups/controller_group_notifications.py | 2 +- mealie/routes/spa/__init__.py | 4 ++-- mealie/routes/users/registration.py | 2 +- mealie/routes/validators/__init__.py | 2 +- .../services/event_bus_service/event_bus_service.py | 10 ++++++++-- 8 files changed, 18 insertions(+), 17 deletions(-) diff --git a/mealie/app.py b/mealie/app.py index 63434b445..069d0f7e3 100644 --- a/mealie/app.py +++ b/mealie/app.py @@ -17,18 +17,14 @@ from mealie.services.scheduler import SchedulerRegistry, SchedulerService, tasks settings = get_app_settings() -description = f""" +description = """ Mealie is a web application for managing your recipes, meal plans, and shopping lists. This is the Restful API interactive documentation that can be used to explore the API. If you're justing getting started with the API and want to get started quickly, you can use the -[API Usage | Mealie Docs](https://nightly.mealie.io/documentation/getting-started/api-usage/) +[API Usage | Mealie Docs](https://docs.mealie.io/documentation/getting-started/api-usage/) as a reference for how to get started. -As of this release {APP_VERSION}, Mealie is still in rapid development and therefore some of these APIs may -change from version to version. - - If you have any questions or comments about mealie, please use the discord server to talk to the developers or other community members. If you'd like to file an issue, please use the [GitHub Issue Tracker | Mealie](https://github.com/mealie-recipes/mealie/issues/new/choose) @@ -36,10 +32,9 @@ community members. If you'd like to file an issue, please use the ## Helpful Links - [Home Page](https://mealie.io) -- [Documentation](https://nightly.mealie.io) +- [Documentation](https://docs.mealie.io) - [Discord](https://discord.gg/QuStdQGSGK) - [Demo](https://demo.mealie.io) -- [Beta](https://demo.mealie.io) """ logger = get_logger() diff --git a/mealie/routes/_base/base_controllers.py b/mealie/routes/_base/base_controllers.py index b04208702..5ef1678cd 100644 --- a/mealie/routes/_base/base_controllers.py +++ b/mealie/routes/_base/base_controllers.py @@ -131,7 +131,7 @@ class BaseCrudController(BaseUserController): Base class for all CRUD controllers to facilitate common CRUD functions. """ - event_bus: EventBusService = Depends(EventBusService.create) + event_bus: EventBusService = Depends(EventBusService.as_dependency) def publish_event(self, event_type: EventTypes, document_data: EventDocumentDataBase, message: str = "") -> None: self.event_bus.dispatch( diff --git a/mealie/routes/admin/admin_analytics.py b/mealie/routes/admin/admin_analytics.py index 14691d5be..f9b571f79 100644 --- a/mealie/routes/admin/admin_analytics.py +++ b/mealie/routes/admin/admin_analytics.py @@ -6,7 +6,7 @@ from mealie.routes._base import BaseAdminController, controller from mealie.schema.analytics.analytics import MealieAnalytics from mealie.services.analytics.service_analytics import AnalyticsService -router = APIRouter(prefix="/analytics") +router = APIRouter(prefix="/analytics", include_in_schema=False) # deprecated - use statistics route instead @controller(router) diff --git a/mealie/routes/groups/controller_group_notifications.py b/mealie/routes/groups/controller_group_notifications.py index fe3576ed6..1162f9250 100644 --- a/mealie/routes/groups/controller_group_notifications.py +++ b/mealie/routes/groups/controller_group_notifications.py @@ -35,7 +35,7 @@ router = APIRouter( @controller(router) class GroupEventsNotifierController(BaseUserController): - event_bus: EventBusService = Depends(EventBusService.create) + event_bus: EventBusService = Depends(EventBusService.as_dependency) @cached_property def repo(self): diff --git a/mealie/routes/spa/__init__.py b/mealie/routes/spa/__init__.py index 3ec82eaea..9ce813c1d 100644 --- a/mealie/routes/spa/__init__.py +++ b/mealie/routes/spa/__init__.py @@ -221,6 +221,6 @@ def mount_spa(app: FastAPI): global __contents __contents = pathlib.Path(__app_settings.STATIC_FILES).joinpath("index.html").read_text() - app.get("/g/{group_slug}/r/{recipe_slug}")(serve_recipe_with_meta) - app.get("/g/{group_slug}/shared/r/{token_id}")(serve_shared_recipe_with_meta) + app.get("/g/{group_slug}/r/{recipe_slug}", include_in_schema=False)(serve_recipe_with_meta) + app.get("/g/{group_slug}/shared/r/{token_id}", include_in_schema=False)(serve_shared_recipe_with_meta) app.mount("/", SPAStaticFiles(directory=__app_settings.STATIC_FILES, html=True), name="spa") diff --git a/mealie/routes/users/registration.py b/mealie/routes/users/registration.py index dd30684ed..4d66b55e3 100644 --- a/mealie/routes/users/registration.py +++ b/mealie/routes/users/registration.py @@ -15,7 +15,7 @@ router = APIRouter(prefix="/register") @controller(router) class RegistrationController(BasePublicController): - event_bus: EventBusService = Depends(EventBusService.create) + event_bus: EventBusService = Depends(EventBusService.as_dependency) @router.post("", response_model=UserOut, status_code=status.HTTP_201_CREATED) def register_new_user(self, data: CreateUserRegistration): diff --git a/mealie/routes/validators/__init__.py b/mealie/routes/validators/__init__.py index a133c15a7..b90243b15 100644 --- a/mealie/routes/validators/__init__.py +++ b/mealie/routes/validators/__init__.py @@ -6,4 +6,4 @@ prefix = "/validators" router = APIRouter() -router.include_router(validators.router, prefix=prefix, tags=["Validators"]) +router.include_router(validators.router, prefix=prefix, tags=["Validators"], include_in_schema=False) diff --git a/mealie/services/event_bus_service/event_bus_service.py b/mealie/services/event_bus_service/event_bus_service.py index c97d73952..d37d3ce09 100644 --- a/mealie/services/event_bus_service/event_bus_service.py +++ b/mealie/services/event_bus_service/event_bus_service.py @@ -1,4 +1,4 @@ -from fastapi import BackgroundTasks, Depends +from fastapi import BackgroundTasks, Depends, Query from pydantic import UUID4 from sqlalchemy.orm.session import Session @@ -84,5 +84,11 @@ class EventBusService: listener.publish_to_subscribers(event, subscribers) @classmethod - def create(cls, bg: BackgroundTasks, session=Depends(generate_session), group_id: UUID4 | None = None): + def as_dependency( + cls, + bg: BackgroundTasks, + session=Depends(generate_session), + group_id: UUID4 | None = Query(None, include_in_schema=False), + ): + """Convenience method to use as a dependency in FastAPI routes""" return cls(bg, session, group_id)