#!/bin/bash # BAA 전략 API 호출 예제 스크립트 # 사용법: ./baa_api_examples.sh # 서버 URL (필요시 수정) BASE_URL="http://localhost:8000/api" echo "==================================" echo "BAA 전략 API 호출 예제" echo "==================================" echo "" # 색상 코드 GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # =================================== # 1. 사용 가능한 전략 구현체 목록 조회 # =================================== echo -e "${BLUE}[1] 사용 가능한 전략 구현체 목록 조회${NC}" echo "curl -X GET ${BASE_URL}/strategies/implementations/" echo "" curl -X GET "${BASE_URL}/strategies/implementations/" \ -H "Content-Type: application/json" | jq '.' echo "" echo "" # =================================== # 2. BAA-G12 시뮬레이션 모드 실행 # =================================== echo -e "${BLUE}[2] BAA-G12 시뮬레이션 모드 실행${NC}" SIMULATION_PAYLOAD='{ "strategy_name": "BoldAssetAllocation", "version": "1.0.0", "parameters": { "initial_capital": 100000, "variant": "BAA-G12", "use_real_data": false } }' echo "curl -X POST ${BASE_URL}/strategies/execute/" echo "Payload:" echo "$SIMULATION_PAYLOAD" | jq '.' echo "" EXEC_ID=$(curl -s -X POST "${BASE_URL}/strategies/execute/" \ -H "Content-Type: application/json" \ -d "$SIMULATION_PAYLOAD" | jq -r '.execution_id') echo -e "${GREEN}실행 ID: $EXEC_ID${NC}" echo "" # 실행 완료 대기 echo "실행 완료 대기 중..." sleep 3 # 결과 조회 echo -e "${BLUE}시뮬레이션 결과 조회${NC}" curl -s -X GET "${BASE_URL}/executions/${EXEC_ID}/" | jq '.' echo "" echo "" # =================================== # 3. BAA-G4 실제 데이터 모드 (현재 날짜) # =================================== echo -e "${BLUE}[3] BAA-G4 실제 데이터 모드 - 현재 날짜 기준 포트폴리오${NC}" REAL_DATA_PAYLOAD='{ "strategy_name": "BoldAssetAllocation", "version": "1.0.0", "parameters": { "initial_capital": 50000, "variant": "BAA-G4", "use_real_data": true, "as_of_date": null } }' echo "curl -X POST ${BASE_URL}/strategies/execute/" echo "Payload:" echo "$REAL_DATA_PAYLOAD" | jq '.' echo "" EXEC_ID2=$(curl -s -X POST "${BASE_URL}/strategies/execute/" \ -H "Content-Type: application/json" \ -d "$REAL_DATA_PAYLOAD" | jq -r '.execution_id') echo -e "${GREEN}실행 ID: $EXEC_ID2${NC}" echo "" # 실행 완료 대기 (실제 데이터는 더 오래 걸림) echo "데이터 다운로드 및 계산 중..." sleep 10 # 결과 조회 echo -e "${BLUE}실제 포트폴리오 결과 조회${NC}" curl -s -X GET "${BASE_URL}/executions/${EXEC_ID2}/" | jq '.' echo "" echo "" # =================================== # 4. BAA-G12 특정 날짜 기준 # =================================== echo -e "${BLUE}[4] BAA-G12 특정 날짜 기준 (2024-01-31)${NC}" DATE_PAYLOAD='{ "strategy_name": "BoldAssetAllocation", "version": "1.0.0", "parameters": { "initial_capital": 100000, "variant": "BAA-G12", "use_real_data": true, "as_of_date": "2024-01-31" } }' echo "curl -X POST ${BASE_URL}/strategies/execute/" echo "Payload:" echo "$DATE_PAYLOAD" | jq '.' echo "" EXEC_ID3=$(curl -s -X POST "${BASE_URL}/strategies/execute/" \ -H "Content-Type: application/json" \ -d "$DATE_PAYLOAD" | jq -r '.execution_id') echo -e "${GREEN}실행 ID: $EXEC_ID3${NC}" echo "" # 실행 완료 대기 echo "데이터 다운로드 및 계산 중..." sleep 10 # 결과 조회 echo -e "${BLUE}특정 날짜 포트폴리오 결과 조회${NC}" curl -s -X GET "${BASE_URL}/executions/${EXEC_ID3}/" | jq '.' echo "" echo "" # =================================== # 5. 실행 상태 조회만 하기 # =================================== echo -e "${YELLOW}[5] 특정 실행 ID 상태 조회 예제${NC}" echo "curl -X GET ${BASE_URL}/executions/{execution_id}/" echo "" echo "예: curl -X GET ${BASE_URL}/executions/${EXEC_ID}/" echo "" echo -e "${GREEN}모든 테스트 완료!${NC}"