#!/bin/bash # ╔══════════════════════════════════════════════════════════════════╗ # ║ VTPRestAPI — cURL Examples ║ # ║ Works on: Linux, macOS, Windows (Git Bash / WSL) ║ # ╚══════════════════════════════════════════════════════════════════╝ BASE_URL="http://vivekamih.gotdns.com:8033/api" # ══════════════════════════════════════════════════════════════════════ # STEP 1 — LOGIN and get your API Key (Session Token) # ══════════════════════════════════════════════════════════════════════ echo "=== STEP 1: Login to get API Key ===" LOGIN_RESPONSE=$(curl -s -X POST "$BASE_URL/auth/login" \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"Admin@123"}') echo "$LOGIN_RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$LOGIN_RESPONSE" # Extract the session token (requires jq: sudo apt install jq) API_KEY=$(echo "$LOGIN_RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin)['sessionToken'])" 2>/dev/null) echo "" echo "Your API Key: $API_KEY" echo "" # ══════════════════════════════════════════════════════════════════════ # STEP 2 — Use API Key in every request via X-Session-Token header # ══════════════════════════════════════════════════════════════════════ echo "=== STEP 2: Call APIs with API Key ===" # ── GET (no params) ────────────────────────────────────────────────── echo "" echo "--- GET: Valid Trading Date ---" curl -s -X GET "$BASE_URL/vtp/valid-trading-date" \ -H "X-Session-Token: $API_KEY" | python3 -m json.tool # ── GET with query params ───────────────────────────────────────────── echo "" echo "--- GET: Clients by Product ---" curl -s -X GET "$BASE_URL/vtp/clients-by-product?productId=116" \ -H "X-Session-Token: $API_KEY" | python3 -m json.tool # ── GET with multiple query params ──────────────────────────────────── echo "" echo "--- GET: Member Ledger ---" curl -s -X GET "$BASE_URL/vtp/member-ledger?memberId=135&partnerId=1" \ -H "X-Session-Token: $API_KEY" | python3 -m json.tool # ── POST with JSON body ─────────────────────────────────────────────── echo "" echo "--- POST: Bill Summary ---" curl -s -X POST "$BASE_URL/vtp/bill-summary" \ -H "Content-Type: application/json" \ -H "X-Session-Token: $API_KEY" \ -d '{ "MpcId": 1234, "Date": "2024-03-19", "BillType": "Q" }' | python3 -m json.tool # ── POST: Portfolio Report ──────────────────────────────────────────── echo "" echo "--- POST: Portfolio Report ---" curl -s -X POST "$BASE_URL/vtp/portfolio-report-string" \ -H "Content-Type: application/json" \ -H "X-Session-Token: $API_KEY" \ -d '{ "MemberProductId": 1234, "FromDate": "2024-01-01", "ToDate": "2024-12-31", "ReportType": "VIM" }' | python3 -m json.tool # ══════════════════════════════════════════════════════════════════════ # STEP 3 — Validate session (check if API Key is still valid) # ══════════════════════════════════════════════════════════════════════ echo "" echo "=== STEP 3: Validate Session ===" curl -s -X GET "$BASE_URL/auth/validate" \ -H "X-Session-Token: $API_KEY" | python3 -m json.tool # ══════════════════════════════════════════════════════════════════════ # STEP 4 — Logout (invalidate API Key) # ══════════════════════════════════════════════════════════════════════ echo "" echo "=== STEP 4: Logout ===" curl -s -X POST "$BASE_URL/auth/logout" \ -H "X-Session-Token: $API_KEY" | python3 -m json.tool # ══════════════════════════════════════════════════════════════════════ # UTILITY — Generate password hash for new users # ══════════════════════════════════════════════════════════════════════ echo "" echo "=== UTILITY: Generate Password Hash for Web.config ===" curl -s -X POST "$BASE_URL/auth/hash" \ -H "Content-Type: application/json" \ -d '{"plain":"NewPassword@123"}' | python3 -m json.tool # ══════════════════════════════════════════════════════════════════════ # Windows CMD versions (copy-paste in command prompt) # ══════════════════════════════════════════════════════════════════════ : ' REM -- STEP 1: Login curl -X POST "http://vivekamih.gotdns.com:8033/api/auth/login" -H "Content-Type: application/json" -d "{\"username\":\"admin\",\"password\":\"Admin@123\"}" REM -- Copy sessionToken from response, then: REM -- STEP 2: Call API with token curl -X GET "http://vivekamih.gotdns.com:8033/api/vtp/valid-trading-date" -H "X-Session-Token: YOUR_TOKEN_HERE" REM -- POST example curl -X POST "http://vivekamih.gotdns.com:8033/api/vtp/bill-summary" -H "Content-Type: application/json" -H "X-Session-Token: YOUR_TOKEN_HERE" -d "{\"MpcId\":1234,\"Date\":\"2024-03-19\",\"BillType\":\"Q\"}" '