Refactor: Clean up API documentation tags
This commit is contained in:
@ -5,18 +5,17 @@ import asyncio
|
|||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from starlette.staticfiles import StaticFiles
|
from starlette.staticfiles import StaticFiles
|
||||||
|
|
||||||
from config import CONFIGS # Loads the configuration from .env
|
from config import CONFIGS
|
||||||
from middleware import AuthMiddleware # Defines authentication middleware
|
from middleware import AuthMiddleware
|
||||||
from middleware import AfterRequestMiddleware # Defines after request middleware
|
from middleware import AfterRequestMiddleware
|
||||||
from dependency import get_session_manager # Defines dependencies across routers
|
from dependency import get_session_manager
|
||||||
from openapi import setup_openapi_schema # Adds authorization header to openapi schema
|
from openapi import setup_openapi_schema
|
||||||
from exception_handler import setup_exception_handler # Defines exception handlers
|
from exception_handler import setup_exception_handler
|
||||||
|
|
||||||
# Append directory of cli_api.py to be able to import it
|
|
||||||
HYSTERIA_CORE_DIR = '/etc/hysteria/core/'
|
HYSTERIA_CORE_DIR = '/etc/hysteria/core/'
|
||||||
sys.path.append(HYSTERIA_CORE_DIR)
|
sys.path.append(HYSTERIA_CORE_DIR)
|
||||||
|
|
||||||
import routers # noqa: This import should be after the sys.path modification, because it imports cli_api
|
import routers
|
||||||
|
|
||||||
|
|
||||||
def create_app() -> FastAPI:
|
def create_app() -> FastAPI:
|
||||||
@ -24,11 +23,10 @@ def create_app() -> FastAPI:
|
|||||||
Create FastAPI app.
|
Create FastAPI app.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# Set up FastAPI
|
|
||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
title='Hysteria Webpanel',
|
title='Blitz API',
|
||||||
description='Webpanel for Hysteria',
|
description='Webpanel for Hysteria2',
|
||||||
version='0.1.0',
|
version='0.2.0',
|
||||||
contact={
|
contact={
|
||||||
'github': 'https://github.com/ReturnFI/Blitz'
|
'github': 'https://github.com/ReturnFI/Blitz'
|
||||||
},
|
},
|
||||||
@ -36,26 +34,19 @@ def create_app() -> FastAPI:
|
|||||||
root_path=f'/{CONFIGS.ROOT_PATH}',
|
root_path=f'/{CONFIGS.ROOT_PATH}',
|
||||||
)
|
)
|
||||||
|
|
||||||
# Set up static files
|
|
||||||
app.mount('/assets', StaticFiles(directory='assets'), name='assets')
|
app.mount('/assets', StaticFiles(directory='assets'), name='assets')
|
||||||
|
|
||||||
# Set up exception handlers
|
|
||||||
setup_exception_handler(app)
|
setup_exception_handler(app)
|
||||||
|
|
||||||
# Set up authentication middleware
|
|
||||||
|
|
||||||
app.add_middleware(AuthMiddleware, session_manager=get_session_manager(), api_token=CONFIGS.API_TOKEN)
|
app.add_middleware(AuthMiddleware, session_manager=get_session_manager(), api_token=CONFIGS.API_TOKEN)
|
||||||
# Set up after request middleware
|
|
||||||
app.add_middleware(AfterRequestMiddleware)
|
app.add_middleware(AfterRequestMiddleware)
|
||||||
|
|
||||||
# Set up Routers
|
app.include_router(routers.basic.router, prefix='', tags=['Web - Basic'])
|
||||||
app.include_router(routers.basic.router, prefix='', tags=['Basic Routes[Web]']) # Add basic router
|
app.include_router(routers.login.router, prefix='', tags=['Web - Authentication'])
|
||||||
app.include_router(routers.login.router, prefix='', tags=['Authentication[Web]']) # Add authentication router
|
app.include_router(routers.settings.router, prefix='/settings', tags=['Web - Settings'])
|
||||||
app.include_router(routers.settings.router, prefix='/settings', tags=['Settings[Web]']) # Add settings router
|
app.include_router(routers.user.router, prefix='/users', tags=['Web - User Management'])
|
||||||
app.include_router(routers.user.router, prefix='/users', tags=['User Management[Web]']) # Add user router
|
app.include_router(routers.api.v1.api_v1_router, prefix='/api/v1')
|
||||||
app.include_router(routers.api.v1.api_v1_router, prefix='/api/v1', tags=['API Version 1']) # Add API version 1 router # type: ignore
|
|
||||||
|
|
||||||
# Document that the API requires an API key
|
|
||||||
setup_openapi_schema(app)
|
setup_openapi_schema(app)
|
||||||
|
|
||||||
return app
|
return app
|
||||||
@ -66,7 +57,7 @@ app: FastAPI = create_app()
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
from hypercorn.config import Config
|
from hypercorn.config import Config
|
||||||
from hypercorn.asyncio import serve # type: ignore
|
from hypercorn.asyncio import serve
|
||||||
from hypercorn.middleware import ProxyFixMiddleware
|
from hypercorn.middleware import ProxyFixMiddleware
|
||||||
|
|
||||||
config = Config()
|
config = Config()
|
||||||
@ -75,6 +66,5 @@ if __name__ == '__main__':
|
|||||||
config.accesslog = '-'
|
config.accesslog = '-'
|
||||||
config.errorlog = '-'
|
config.errorlog = '-'
|
||||||
|
|
||||||
# Fix proxy headers
|
app = ProxyFixMiddleware(app, 'legacy')
|
||||||
app = ProxyFixMiddleware(app, 'legacy') # type: ignore
|
asyncio.run(serve(app, config))
|
||||||
asyncio.run(serve(app, config)) # type: ignore
|
|
||||||
@ -5,6 +5,6 @@ from . import config
|
|||||||
|
|
||||||
api_v1_router = APIRouter()
|
api_v1_router = APIRouter()
|
||||||
|
|
||||||
api_v1_router.include_router(user.router, prefix='/users')
|
api_v1_router.include_router(user.router, prefix='/users', tags=['API - Users'])
|
||||||
api_v1_router.include_router(server.router, prefix='/server')
|
api_v1_router.include_router(server.router, prefix='/server', tags=['API - Server'])
|
||||||
api_v1_router.include_router(config.router, prefix='/config')
|
api_v1_router.include_router(config.router, prefix='/config')
|
||||||
@ -11,11 +11,11 @@ from . import extra_config
|
|||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
router.include_router(hysteria.router, prefix='/hysteria')
|
router.include_router(hysteria.router, prefix='/hysteria', tags=['API - Config - Hysteria'])
|
||||||
router.include_router(warp.router, prefix='/warp')
|
router.include_router(warp.router, prefix='/warp', tags=['API - Config - Warp'])
|
||||||
router.include_router(telegram.router, prefix='/telegram')
|
router.include_router(telegram.router, prefix='/telegram', tags=['API - Config - Telegram'])
|
||||||
router.include_router(normalsub.router, prefix='/normalsub')
|
router.include_router(normalsub.router, prefix='/normalsub', tags=['API - Config - Normalsub'])
|
||||||
router.include_router(singbox.router, prefix='/singbox')
|
router.include_router(singbox.router, prefix='/singbox', tags=['API - Config - Singbox'])
|
||||||
router.include_router(ip.router, prefix='/ip')
|
router.include_router(ip.router, prefix='/ip', tags=['API - Config - IP'])
|
||||||
router.include_router(extra_config.router, prefix='/extra-config', tags=['Config - Extra Config'])
|
router.include_router(extra_config.router, prefix='/extra-config', tags=['API - Config - Extra Config'])
|
||||||
router.include_router(misc.router)
|
router.include_router(misc.router, tags=['API - Config - Misc'])
|
||||||
Reference in New Issue
Block a user