test-cloudfunc4.ps1 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # Explore FmodeParse cloud function REST endpoint patterns
  2. $ct = "application/json"
  3. $appId = "ncloudmaster"
  4. $funcId = "t012qy4XVe"
  5. $headers = @{ "X-Parse-Application-Id" = $appId; "Content-Type" = $ct }
  6. $patterns = @(
  7. @{ name = "cloudRun"; url = "https://server.fmode.cn/parse/functions/cloudRun"; body = @{ functionId = $funcId; params = @{ apigId = "Vo3ROWEvDy" } } },
  8. @{ name = "cloudFunction"; url = "https://server.fmode.cn/parse/functions/cloudFunction"; body = @{ id = $funcId; apigId = "Vo3ROWEvDy" } },
  9. @{ name = "runFunction"; url = "https://server.fmode.cn/parse/functions/runFunction"; body = @{ id = $funcId; apigId = "Vo3ROWEvDy" } },
  10. @{ name = "api/function"; url = "https://server.fmode.cn/api/function/$funcId"; body = @{ apigId = "Vo3ROWEvDy" } },
  11. @{ name = "api/cloudfunction"; url = "https://server.fmode.cn/api/cloudfunction/$funcId"; body = @{ apigId = "Vo3ROWEvDy" } },
  12. @{ name = "api/cloudfunction/run"; url = "https://server.fmode.cn/api/cloudfunction/run"; body = @{ id = $funcId; apigId = "Vo3ROWEvDy" } },
  13. @{ name = "parse/functions/id+header"; url = "https://server.fmode.cn/parse/functions/$funcId"; body = @{ apigId = "Vo3ROWEvDy" }; useHeaders = $true },
  14. @{ name = "api/cql/run"; url = "https://server.fmode.cn/api/cql/run"; body = @{ id = $funcId; params = @{ apigId = "Vo3ROWEvDy" } } }
  15. )
  16. foreach ($p in $patterns) {
  17. Write-Host "=== $($p.name): $($p.url) ===" -ForegroundColor Cyan
  18. $jsonBody = $p.body | ConvertTo-Json -Depth 3 -Compress
  19. try {
  20. if ($p.useHeaders) {
  21. $r = Invoke-WebRequest -Uri $p.url -Method POST -Headers $headers -Body $jsonBody -TimeoutSec 8
  22. } else {
  23. $r = Invoke-WebRequest -Uri $p.url -Method POST -ContentType $ct -Body $jsonBody -TimeoutSec 8
  24. }
  25. Write-Host " Status: $($r.StatusCode) Body: $($r.Content.Substring(0, [Math]::Min(300, $r.Content.Length)))" -ForegroundColor Green
  26. } catch {
  27. $code = "?"
  28. $body = ""
  29. if ($_.Exception.Response) {
  30. $code = [int]$_.Exception.Response.StatusCode
  31. try {
  32. $stream = $_.Exception.Response.GetResponseStream()
  33. $reader = New-Object System.IO.StreamReader($stream)
  34. $body = $reader.ReadToEnd()
  35. } catch {}
  36. }
  37. Write-Host " $code : $body" -ForegroundColor Yellow
  38. }
  39. Write-Host ""
  40. }