curl-test.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. # Simple curl tester for the Framework X API using Bearer token auth.
  4. # Usage:
  5. # ./bin/curl-test.sh [METHOD] [PATH] [APP_ID]
  6. # Examples:
  7. # ./bin/curl-test.sh GET /hello 1
  8. # ./bin/curl-test.sh GET /hello # if DEFAULT_APPLICATION_ID is set in .env
  9. METHOD="${1:-GET}"
  10. PATH_URL="${2:-/hello}"
  11. APP_ID_INPUT="${3:-1}"
  12. # Base URL
  13. HOST="${HOST:-localhost}"
  14. PORT="${APP_PORT:-8080}"
  15. BASE_URL="http://$HOST:$PORT"
  16. # Default headers
  17. APP_ID_HEADER="${APP_ID_HEADER:-x-app-id}"
  18. DEFAULT_APP_ID="${DEFAULT_APPLICATION_ID:-}"
  19. # (legacy) optional support for flag
  20. APP_FLAG_HEADER="${APP_FLAG_HEADER:-x-app-flag}"
  21. DEFAULT_APP_FLAG="${DEFAULT_APPLICATION_FLAG:-}"
  22. # Temporary token provided by request (DO NOT COMMIT TO PROD)
  23. TOKEN="Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjksInVzZXJuYW1lIjoiTWl4dGVjaCIsInJvbGVfaWQiOjEsImNvbXBhbnlfaWQiOjIsImlhdCI6MTc1NTg1MDEzNywiZXhwIjoxNzU1ODY0NTM3fQ.9HXKAPw5Pw_K69KHPyncSJcW0FlRNNoEYNfnevB9vg4"
  24. # Choose app id (preferred)
  25. APP_ID="$APP_ID_INPUT"
  26. if [[ -z "$APP_ID" && -n "$DEFAULT_APP_ID" ]]; then
  27. APP_ID="$DEFAULT_APP_ID"
  28. fi
  29. # Choose legacy flag only if ID is not provided
  30. APP_FLAG="${APP_FLAG:-}"
  31. if [[ -z "$APP_ID" ]]; then
  32. if [[ -n "$DEFAULT_APP_FLAG" ]]; then APP_FLAG="$DEFAULT_APP_FLAG"; fi
  33. fi
  34. URL="$BASE_URL$PATH_URL"
  35. echo "=> Request: $METHOD $URL"
  36. echo "=> Using app id header: $APP_ID_HEADER=${APP_ID:-<none>} (legacy flag $APP_FLAG_HEADER=${APP_FLAG:-<none>})"
  37. HDRS=(-H "Authorization: $TOKEN" -H "Accept: application/json")
  38. if [[ -n "$APP_ID" ]]; then
  39. HDRS+=( -H "$APP_ID_HEADER: $APP_ID" )
  40. elif [[ -n "$APP_FLAG" ]]; then
  41. HDRS+=( -H "$APP_FLAG_HEADER: $APP_FLAG" )
  42. fi
  43. set -x
  44. curl -i -sS -X "$METHOD" "${HDRS[@]}" "$URL"