Skip to content

Mustafa Ateş UZUN Blog

mustafauzun.co

  • About
  • Blog
  • Home
  • »
  • Powershell
  • »
  • Powershell, API Test Script
  • »
    • May 23, 2023
    • by mustafauzun
  • Powershell

Powershell, API Test Script

Write-Host "[API Test]" "`n"

$informationTexts = @{
    Success = @{Text = "Success"; BackgroundColor = "DarkGreen"}
    Error = @{Text = "Error"; BackgroundColor = "DarkRed"}
    Warning = @{Text="Warning"; BackgroundColor = "DarkCyan"}
}

$logFolder = "logs"
New-Item -ItemType Directory -Path $logFolder -Force | Out-Null

$apis = @(
    @{
        "name"="Get Users"
        "method"="GET"
        "url"="api/v2/users?size=1"
        "body"=$null | ConvertTo-Json
    },
    @{
        "name"="Post Users"
        "method"="POST"
        "url"="api/v2/users"
        "body"=@{
            "myParams1"="hello"
        } | ConvertTo-Json
    }
)

$header = @{
"Accept"="application/json"
"Content-Type"="application/json"
}

$apiDefaultURL = "http://localhost:8081"
$apiURL = Read-Host -Prompt "Input API website name (default: $apiDefaultURL)"

if(-not($apiURL))
{
    $apiURL = $apiDefaultURL
}

foreach ($api in $apis) {
    Write-Host "Request for $($api.name) API" -NoNewline
    Write-Host " - " -NoNewline

    $response = Invoke-RestMethod -Uri $($apiURL + '/' + $api.url) -Method $api.method -Body $api.body -Headers $header | ConvertTo-Json
    
    if($response.error) {
        Write-Host $informationTexts.Error.Text -BackgroundColor $informationTexts.Error.BackgroundColor -NoNewline
    } else {
        Write-Host $informationTexts.Success.Text -BackgroundColor $informationTexts.Success.BackgroundColor -NoNewline
    }

    $logFile = "$logFolder\$($api.name).json"
    $response | Out-File -FilePath $logFile

    Write-Host " - " -NoNewline
    Write-Host "(Response write to $logFile file)"
}

pause
Share

Powershell, Application Checker Script

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Javascript, Task Queue
  • Javascript, Thread Pool
  • Javascript, Lexical Environment
  • Javascript, Execution Context
  • Javascript, Event Delegation

Recent Comments

No comments to show.

Archives

  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • January 2022

Categories

  • C#
  • CMD
  • CSS
  • HTML
  • JavaScript
  • MongoDB
  • Node.js
  • Podcast
  • Powershell
  • Uncategorized
Theme: Puskar by Template Sell.