REST API mit PowerShell

     Gültig ab BiG EVAL Version 2.6.1

    Voraussetzungen

    • Erstellen Sie in der Benutzerverwaltung von BiG EVAL einen API Client und halten Sie die dabei erzeugte Client ID, Client Secret und das Access Token bereit.
      API Client erstellen

     

    PowerShell Skript Beispiele

    Um die BiG EVAL REST API mit PowerShell anzusprechen, empfehlen wir eines der folgenden Vorgehen. Diese unterscheiden sich durch die Art des Authentifizierungsverfahrens.

    Variante A: Statisches Access Token verwenden

    Bei dieser Variante wird das Access Token verwendet, welches beim Erstellen des API Clients in der Benutzerverwaltung generiert wurde. D.h. bei jeder Ausführung des PowerShell-Skripts wird das selbe Access Token verwendet.

    # Enter the URL of the BiG EVAL Instance. 
    # Important: Use a trailing slash at the end of the URL.
    $bigevalUrl = "http://localhost:1703/"

    # Enter the Access Token of the API Client.
    $accessToken = "94b757d0a9657601e548d393fbba4fed01d5388c8bb857dd0db54311253e1c79"


    # Call API
    try {
    $apiEndpoint = $bigevalUrl+"api/v1/default/"
    $apiUrl = $apiEndpoint + "suites"
    $response = Invoke-RestMethod -Method Get -Uri $apiUrl -Headers @{"Authorization"="Bearer $accessToken"}
    $response
    } catch {
    Write-Host "API Request failed"
    Write-Host " StatusCode:" $_.Exception.Response.StatusCode.value__
    Write-Host " StatusDescription:" $_.Exception.Response.StatusDescription
    }

     

    Variante B: Access Token bei Skriptausführung erstellen

    In der ersten Hälfte des folgenden Skripts wird bei jeder Ausführung ein neues Access Token angefordert. Dieses wird anschliessend im API Aufruf in der zweiten Hälfte verwendet.

    Zu Beginn müssen dei drei aufgeführten Variablen $bigevalUrl, $clientId und $clientSecret konfiguriert werden. 

    # Enter the URL of the BiG EVAL Instance.
    # Important: Use a trailing slash at the end of the URL.
    $bigevalUrl = "http://localhost:1703/"

    # Enter the Client ID of the API Client.
    $clientId = "6b6de96d814871165473604dba0d3941"

    # Enter the Client Secret of the API Client.
    $clientSecret = "a32a31d170e14837a895174068047c21"


    # Get OAuth2 Access-Token
    [string]$accessToken = $null
    try {
    $tokenEndpoint = $bigevalUrl+"connect/token"
    $authBody = "grant_type=client_credentials&scope=bigeval-api-v1&client_id=" + $clientId + "&client_secret=" + $clientSecret
    $authResponse = Invoke-RestMethod -Uri $tokenEndpoint -Method POST -Body $authBody
    $accessToken = $authResponse.access_token
    $accessTokenExpiresAt = (Get-Date).AddSeconds($authResponse.expires_in)
    Write-Host "OAuth Token Request successful"
    Write-Host " Token expires at:" $accessTokenExpiresAt
    } catch {
    Write-Host "OAuth Token Request failed"
    Write-Host " StatusCode:" $_.Exception.Response.StatusCode.value__
    Write-Host " StatusDescription:" $_.Exception.Response.StatusDescription
    }

    # Call API
    try {
    $apiEndpoint = $bigevalUrl+"api/v1/default/"
    $apiUrl = $apiEndpoint + "suites"
    $response = Invoke-RestMethod -Method Get -Uri $apiUrl -Headers @{"Authorization"="Bearer $accessToken"}
    $response
    } catch {
    Write-Host "API Request failed"
    Write-Host " StatusCode:" $_.Exception.Response.StatusCode.value__
    Write-Host " StatusDescription:" $_.Exception.Response.StatusDescription
    }

     

     

    War dieser Beitrag hilfreich?
    0 von 0 fanden dies hilfreich

    Kommentare