원 레포랑 완전 분리
This commit is contained in:
42
workspace/routers/api_key_router.py
Normal file
42
workspace/routers/api_key_router.py
Normal file
@@ -0,0 +1,42 @@
|
||||
from fastapi import APIRouter, Body, HTTPException
|
||||
from services import api_key_service
|
||||
|
||||
router = APIRouter(prefix="/manage", tags=["API Key Management"])
|
||||
|
||||
|
||||
@router.post("/keys", summary="Create a new API Key")
|
||||
def create_key(
|
||||
client_name: str = Body(
|
||||
...,
|
||||
embed=True,
|
||||
description="Name of the client or service that will use this key.",
|
||||
),
|
||||
):
|
||||
"""
|
||||
새로운 API 키를 생성하고 시스템에 등록합니다.
|
||||
"""
|
||||
if not client_name:
|
||||
raise HTTPException(status_code=400, detail="Client name is required.")
|
||||
|
||||
new_key_info = api_key_service.create_api_key(client_name)
|
||||
return {"message": "API Key created successfully", "key_info": new_key_info}
|
||||
|
||||
|
||||
@router.get("/keys", summary="List all API Keys")
|
||||
def list_keys():
|
||||
"""
|
||||
현재 시스템에 등록된 모든 API 키의 정보를 조회합니다.
|
||||
"""
|
||||
keys = api_key_service.list_api_keys()
|
||||
return {"keys": keys}
|
||||
|
||||
|
||||
@router.delete("/keys/{api_key}", summary="Revoke an API Key")
|
||||
def revoke_key(api_key: str):
|
||||
"""
|
||||
지정된 API 키를 시스템에서 영구적으로 삭제(폐기)합니다.
|
||||
"""
|
||||
success = api_key_service.revoke_api_key(api_key)
|
||||
if not success:
|
||||
raise HTTPException(status_code=404, detail="API Key not found.")
|
||||
return {"message": f"API Key '{api_key}' has been revoked."}
|
||||
Reference in New Issue
Block a user