"백엔드_핵심_로직_구현_프론트엔드_연동_및_도커_배포_최적화_완료"

This commit is contained in:
2026-02-03 00:52:54 +09:00
parent ed8fc0943b
commit eeddc62089
32 changed files with 1287 additions and 318 deletions

View File

@@ -3,8 +3,10 @@ from pydantic import BaseModel
from typing import Literal
from app.services.kis_client import kis_client
import logging
router = APIRouter()
logger = logging.getLogger("KisAPI")
class OrderRequest(BaseModel):
market: Literal["Domestic", "Overseas"]
@@ -13,6 +15,15 @@ class OrderRequest(BaseModel):
quantity: int
price: float = 0 # 0 for Market Price (if supported)
class ModifyOrderRequest(BaseModel):
market: Literal["Domestic", "Overseas"]
order_no: str
code: str
quantity: int
price: float = 0
type: str = "00"
is_cancel: bool = False # True = Cancel, False = Modify
@router.get("/price")
async def get_current_price(market: Literal["Domestic", "Overseas"], code: str):
"""
@@ -29,11 +40,22 @@ async def get_balance(market: Literal["Domestic", "Overseas"]):
try:
data = await kis_client.get_balance(market)
return data
raise HTTPException(status_code=500, detail=str(e))
@router.put("/order")
async def modify_order(req: ModifyOrderRequest):
logger.info(f"Received Modify/Cancel Request: {req}")
try:
res = await kis_client.modify_order(
req.market, req.order_no, req.code, req.quantity, req.price, req.type, req.is_cancel
)
return res
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@router.post("/order")
async def place_order(order: OrderRequest):
logger.info(f"Received Order Request: {order}")
try:
res = await kis_client.place_order(order.market, order.side, order.code, order.quantity, order.price)
return res