Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix fastapi swagger documentation when offline #1568

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion core/libs/commonwealth/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"aiohttp == 3.7.4",
"appdirs == 1.4.4",
"loguru == 0.5.3",
"starlette == 0.13.6",
"starlette == 0.22.0",
"pykson == 1.0.2",
],
dependency_links=[
Expand Down
5 changes: 3 additions & 2 deletions core/services/ardupilot_manager/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@
)
from commonwealth.utils.general import is_running_as_root
from commonwealth.utils.logs import InterceptHandler, init_logger
from fastapi import Body, FastAPI, File, UploadFile, status
from fastapi import Body, File, UploadFile, status
from fastapi.staticfiles import StaticFiles
from fastapi_offline import FastAPIOffline
from fastapi_versioning import VersionedFastAPI, version
from loguru import logger
from uvicorn import Config, Server
Expand All @@ -39,7 +40,7 @@
init_logger(SERVICE_NAME)


app = FastAPI(
app = FastAPIOffline(
title="ArduPilot Manager API",
description="ArduPilot Manager is responsible for managing ArduPilot devices connected to BlueOS.",
default_response_class=PrettyJSONResponse,
Expand Down
5 changes: 3 additions & 2 deletions core/services/ardupilot_manager/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@
"appdirs == 1.4.4",
"packaging == 20.4",
"smbus2 == 0.3.0",
"starlette == 0.13.6",
"fastapi == 0.63.0",
"starlette == 0.22.0",
"fastapi == 0.89.1",
"fastapi-offline == 1.5.2",
"uvicorn == 0.13.4",
"python-multipart == 0.0.5",
"validators == 0.18.2",
Expand Down
5 changes: 3 additions & 2 deletions core/services/beacon/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@
from commonwealth.settings.manager import Manager
from commonwealth.utils.apis import PrettyJSONResponse
from commonwealth.utils.logs import init_logger
from fastapi import FastAPI, Request
from fastapi import Request
from fastapi.responses import HTMLResponse
from fastapi_offline import FastAPIOffline
from fastapi_versioning import VersionedFastAPI, version
from loguru import logger
from uvicorn import Config, Server
Expand Down Expand Up @@ -234,7 +235,7 @@ async def stop(self) -> None:
await asyncio.gather(*[runner.unregister_services() for runner in self.runners.values()])


app = FastAPI(
app = FastAPIOffline(
title="Beacon API",
description="Beacon is responsible for publishing mDNS domains.",
default_response_class=PrettyJSONResponse,
Expand Down
5 changes: 3 additions & 2 deletions core/services/bridget/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
import uvicorn
from commonwealth.utils.apis import GenericErrorHandlingRoute, PrettyJSONResponse
from commonwealth.utils.logs import InterceptHandler, init_logger
from fastapi import FastAPI, status
from fastapi import status
from fastapi.responses import HTMLResponse
from fastapi_offline import FastAPIOffline
from fastapi_versioning import VersionedFastAPI, version
from loguru import logger

Expand All @@ -17,7 +18,7 @@
logging.basicConfig(handlers=[InterceptHandler()], level=0)
init_logger(SERVICE_NAME)

app = FastAPI(
app = FastAPIOffline(
title="Bridget API",
description="Bridget is a BlueOS service responsible for managing 'bridges' links.",
default_response_class=PrettyJSONResponse,
Expand Down
3 changes: 2 additions & 1 deletion core/services/bridget/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
install_requires=[
"bridges == 0.1.0",
"commonwealth == 0.1.0",
"fastapi == 0.63.0",
"fastapi == 0.89.1",
"fastapi-offline == 1.5.2",
"fastapi-versioning == 0.9.1",
"loguru == 0.5.3",
"uvicorn == 0.13.4",
Expand Down
5 changes: 3 additions & 2 deletions core/services/cable_guy/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
from commonwealth.utils.apis import GenericErrorHandlingRoute, PrettyJSONResponse
from commonwealth.utils.decorators import temporary_cache
from commonwealth.utils.logs import InterceptHandler, init_logger
from fastapi import Body, FastAPI
from fastapi import Body
from fastapi.staticfiles import StaticFiles
from fastapi_offline import FastAPIOffline
from fastapi_versioning import VersionedFastAPI, version
from loguru import logger
from uvicorn import Config, Server
Expand Down Expand Up @@ -49,7 +50,7 @@

HTML_FOLDER = Path.joinpath(Path(__file__).parent.absolute(), "html")

app = FastAPI(
app = FastAPIOffline(
title="Cable Guy API",
description="Cable Guy is responsible for managing internet interfaces on BlueOS.",
default_response_class=PrettyJSONResponse,
Expand Down
5 changes: 3 additions & 2 deletions core/services/cable_guy/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,9 @@ def populate_static_files() -> None:
"appdirs == 1.4.4",
"psutil == 5.7.2",
"pyroute2 == 0.5.13",
"starlette == 0.13.6",
"fastapi == 0.63.0",
"starlette == 0.22.0",
"fastapi == 0.89.1",
"fastapi-offline == 1.5.2",
"uvicorn == 0.13.4",
"aiofiles == 0.6.0",
"fastapi-versioning == 0.9.1",
Expand Down
5 changes: 3 additions & 2 deletions core/services/commander/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
from commonwealth.utils.commands import run_command
from commonwealth.utils.general import delete_everything
from commonwealth.utils.logs import InterceptHandler, init_logger
from fastapi import FastAPI, HTTPException, status
from fastapi import HTTPException, status
from fastapi.responses import HTMLResponse
from fastapi_offline import FastAPIOffline
from fastapi_versioning import VersionedFastAPI, version
from loguru import logger

Expand All @@ -23,7 +24,7 @@
logging.basicConfig(handlers=[InterceptHandler()], level=0)
init_logger(SERVICE_NAME)

app = FastAPI(
app = FastAPIOffline(
title="Commander API",
description="Commander is a BlueOS service responsible to abstract simple commands to the frontend.",
)
Expand Down
3 changes: 2 additions & 1 deletion core/services/commander/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
install_requires=[
"appdirs == 1.4.4",
"commonwealth == 0.1.0",
"fastapi == 0.63.0",
"fastapi == 0.89.1",
"fastapi-offline == 1.5.2",
"fastapi-versioning == 0.9.1",
"loguru == 0.5.3",
"uvicorn == 0.13.4",
Expand Down
4 changes: 2 additions & 2 deletions core/services/helper/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
from bs4 import BeautifulSoup
from commonwealth.utils.apis import GenericErrorHandlingRoute, PrettyJSONResponse
from commonwealth.utils.decorators import temporary_cache
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi_offline import FastAPIOffline
from fastapi_versioning import VersionedFastAPI, version
from pydantic import BaseModel

Expand Down Expand Up @@ -117,7 +117,7 @@ def scan_ports() -> List[ServiceInfo]:
return [service for service in services if service.valid]


fast_api_app = FastAPI(
fast_api_app = FastAPIOffline(
title="Helper API",
description="Everybody's helper to find web services that are running in BlueOS.",
default_response_class=PrettyJSONResponse,
Expand Down
5 changes: 3 additions & 2 deletions core/services/helper/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,12 @@ def populate_static_files() -> None:
"aiofiles == 0.6.0",
"beautifulsoup4 == 4.9.3",
"commonwealth == 0.1.0",
"fastapi == 0.63.0",
"fastapi == 0.89.1",
"fastapi-offline == 1.5.2",
"fastapi-versioning == 0.9.1",
"psutil == 5.7.2",
"requests == 2.25.1",
"starlette == 0.13.6",
"starlette == 0.22.0",
"uvicorn == 0.13.4",
],
)
5 changes: 3 additions & 2 deletions core/services/kraken/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@

from commonwealth.utils.apis import GenericErrorHandlingRoute
from commonwealth.utils.logs import InterceptHandler, init_logger
from fastapi import FastAPI, HTTPException, status
from fastapi import HTTPException, status
from fastapi.responses import HTMLResponse, StreamingResponse
from fastapi_offline import FastAPIOffline
from fastapi_versioning import VersionedFastAPI, version
from loguru import logger
from pydantic import BaseModel
Expand Down Expand Up @@ -41,7 +42,7 @@ def is_valid(self) -> bool:
print(f"unable to set logging path: {e}")


app = FastAPI(
app = FastAPIOffline(
title="Kraken API",
description="Kraken is the BlueOS service responsible for installing and managing thirdy-party extensions.",
)
Expand Down
3 changes: 2 additions & 1 deletion core/services/kraken/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
install_requires=[
"appdirs == 1.4.4",
"commonwealth == 0.1.0",
"fastapi == 0.63.0",
"fastapi == 0.89.1",
"fastapi-offline == 1.5.2",
"fastapi-versioning == 0.9.1",
"loguru == 0.5.3",
"uvicorn == 0.13.4",
Expand Down
5 changes: 3 additions & 2 deletions core/services/nmea_injector/nmea_injector/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@

from commonwealth.utils.apis import GenericErrorHandlingRoute, PrettyJSONResponse
from commonwealth.utils.logs import InterceptHandler, init_logger
from fastapi import FastAPI, status
from fastapi import status
from fastapi.responses import HTMLResponse
from fastapi_offline import FastAPIOffline
from fastapi_versioning import VersionedFastAPI, version
from loguru import logger
from uvicorn import Config, Server
Expand All @@ -26,7 +27,7 @@
init_logger(SERVICE_NAME)


app = FastAPI(
app = FastAPIOffline(
title="NMEA Injector API",
description="NMEA Injector is a service responsible for injecting external NMEA data on the Mavlink stream.",
default_response_class=PrettyJSONResponse,
Expand Down
5 changes: 3 additions & 2 deletions core/services/nmea_injector/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
install_requires=[
"appdirs == 1.4.4",
"commonwealth == 0.1.0",
"fastapi == 0.63.0",
"fastapi == 0.89.1",
"fastapi-offline == 1.5.2",
"fastapi-versioning == 0.9.1",
"loguru == 0.5.3",
"pynmea2 == 1.18.0",
"starlette == 0.13.6",
"starlette == 0.22.0",
"uvicorn == 0.13.4",
"validators == 0.18.2",
"pytest-mock==3.10.0",
Expand Down
5 changes: 3 additions & 2 deletions core/services/ping/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@

from commonwealth.utils.apis import GenericErrorHandlingRoute, PrettyJSONResponse
from commonwealth.utils.logs import init_logger
from fastapi import FastAPI, status
from fastapi import status
from fastapi.responses import HTMLResponse
from fastapi_offline import FastAPIOffline
from fastapi_versioning import VersionedFastAPI, version
from loguru import logger
from uvicorn import Config, Server
Expand All @@ -18,7 +19,7 @@

SERVICE_NAME = "ping"

app = FastAPI(
app = FastAPIOffline(
title="Ping Manager API",
description="Ping Manager is responsible for managing Ping devices connected to BlueOS.",
default_response_class=PrettyJSONResponse,
Expand Down
5 changes: 3 additions & 2 deletions core/services/ping/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
install_requires=[
"bluerobotics-ping == 0.1.2",
"bridges == 0.1.0",
"fastapi == 0.63.0",
"fastapi == 0.89.1",
"fastapi-offline == 1.5.2",
"fastapi-versioning == 0.9.1",
"loguru == 0.5.3",
"pyserial == 3.5",
"starlette == 0.13.6",
"starlette == 0.22.0",
"uvicorn == 0.13.4",
],
)
5 changes: 3 additions & 2 deletions core/services/wifi/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@
StackedHTTPException,
)
from commonwealth.utils.logs import InterceptHandler, init_logger
from fastapi import FastAPI, HTTPException, status
from fastapi import HTTPException, status
from fastapi.staticfiles import StaticFiles
from fastapi_offline import FastAPIOffline
from fastapi_versioning import VersionedFastAPI, version
from loguru import logger
from tabulate import tabulate
Expand All @@ -35,7 +36,7 @@
wifi_manager = WifiManager()


app = FastAPI(
app = FastAPIOffline(
title="WiFi Manager API",
description="WiFi Manager is responsible for managing WiFi connections on BlueOS.",
default_response_class=PrettyJSONResponse,
Expand Down
5 changes: 3 additions & 2 deletions core/services/wifi/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,9 @@
description="Wifi manager for wpa_supplicant",
license="MIT",
install_requires=[
"starlette == 0.13.6",
"fastapi == 0.63.0",
"starlette == 0.22.0",
"fastapi == 0.89.1",
"fastapi-offline == 1.5.2",
"uvicorn == 0.13.4",
"aiofiles == 0.6.0",
"fastapi-versioning == 0.9.1",
Expand Down