feat: 数据导出/导入(资产迁移/备份,支撑部署到其他服务器)
This commit is contained in:
+17
-1
@@ -5,7 +5,7 @@
|
||||
|
||||
from typing import List, Optional
|
||||
|
||||
from fastapi import APIRouter, Depends, Query
|
||||
from fastapi import APIRouter, Body, Depends, Query
|
||||
from sqlmodel import Session
|
||||
|
||||
from app.core.security import require_api_key
|
||||
@@ -32,6 +32,22 @@ def list_assets(
|
||||
)
|
||||
|
||||
|
||||
@router.get("/export", summary="导出所有资产(数据迁移/备份)")
|
||||
def export_assets(session: Session = Depends(get_session)) -> dict:
|
||||
return asset_service.export_assets(session)
|
||||
|
||||
|
||||
@router.post(
|
||||
"/import",
|
||||
summary="导入资产(从导出数据,按 name+类型+服务商去重)",
|
||||
dependencies=[Depends(require_api_key)],
|
||||
)
|
||||
def import_assets_endpoint(
|
||||
data: dict = Body(...), session: Session = Depends(get_session)
|
||||
) -> dict:
|
||||
return asset_service.import_assets(session, data.get("assets", []))
|
||||
|
||||
|
||||
@router.get("/{asset_id}", response_model=AssetRead, summary="资产详情")
|
||||
def get_asset(asset_id: int, session: Session = Depends(get_session)):
|
||||
return asset_service.get_asset(session, asset_id)
|
||||
|
||||
Reference in New Issue
Block a user