| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/usr/bin/env bash
- set -euo pipefail
- # Simple curl tester for the Framework X API using Bearer token auth.
- # Usage:
- # ./bin/curl-test.sh [METHOD] [PATH] [APP_ID]
- # Examples:
- # ./bin/curl-test.sh GET /hello 1
- # ./bin/curl-test.sh GET /hello # if DEFAULT_APPLICATION_ID is set in .env
- METHOD="${1:-GET}"
- PATH_URL="${2:-/hello}"
- APP_ID_INPUT="${3:-1}"
- # Base URL
- HOST="${HOST:-localhost}"
- PORT="${APP_PORT:-8080}"
- BASE_URL="http://$HOST:$PORT"
- # Default headers
- APP_ID_HEADER="${APP_ID_HEADER:-x-app-id}"
- DEFAULT_APP_ID="${DEFAULT_APPLICATION_ID:-}"
- # (legacy) optional support for flag
- APP_FLAG_HEADER="${APP_FLAG_HEADER:-x-app-flag}"
- DEFAULT_APP_FLAG="${DEFAULT_APPLICATION_FLAG:-}"
- # Temporary token provided by request (DO NOT COMMIT TO PROD)
- TOKEN="Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjksInVzZXJuYW1lIjoiTWl4dGVjaCIsInJvbGVfaWQiOjEsImNvbXBhbnlfaWQiOjIsImlhdCI6MTc1NTg1MDEzNywiZXhwIjoxNzU1ODY0NTM3fQ.9HXKAPw5Pw_K69KHPyncSJcW0FlRNNoEYNfnevB9vg4"
- # Choose app id (preferred)
- APP_ID="$APP_ID_INPUT"
- if [[ -z "$APP_ID" && -n "$DEFAULT_APP_ID" ]]; then
- APP_ID="$DEFAULT_APP_ID"
- fi
- # Choose legacy flag only if ID is not provided
- APP_FLAG="${APP_FLAG:-}"
- if [[ -z "$APP_ID" ]]; then
- if [[ -n "$DEFAULT_APP_FLAG" ]]; then APP_FLAG="$DEFAULT_APP_FLAG"; fi
- fi
- URL="$BASE_URL$PATH_URL"
- echo "=> Request: $METHOD $URL"
- echo "=> Using app id header: $APP_ID_HEADER=${APP_ID:-<none>} (legacy flag $APP_FLAG_HEADER=${APP_FLAG:-<none>})"
- HDRS=(-H "Authorization: $TOKEN" -H "Accept: application/json")
- if [[ -n "$APP_ID" ]]; then
- HDRS+=( -H "$APP_ID_HEADER: $APP_ID" )
- elif [[ -n "$APP_FLAG" ]]; then
- HDRS+=( -H "$APP_FLAG_HEADER: $APP_FLAG" )
- fi
- set -x
- curl -i -sS -X "$METHOD" "${HDRS[@]}" "$URL"
|