poshud/pages/restapis.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
$Users = @(
    [PSCustomObject]@{
        id = 1
        name = "Adam"
    }
    [PSCustomObject]@{
        id = 2
        name = "Frank"
    }
)

$CreateRestApis = {
    New-UDEndpoint -Url "/api/user" -Endpoint {
        $Users
    }

    Invoke-RestMethod -Uri "https://poshud.com/api/user"
}

$Parameters = {
    New-UDEndpoint -Url "/api/user/:id" -Endpoint {
        param($id)

        $Users | Where-Object Id -eq $id
    }

    Invoke-RestMethod -Uri "https://poshud.com/api/user/1"
}

$PostData = {
    New-UDEndpoint -Url "/api/echo" -Method POST -Endpoint {
        param($Body)

        $Body | ConvertTo-Json
    }

    $Body = @{  value = "test" } 
    Invoke-RestMethod -Uri "https://poshud.com/api/echo" -Method POST -Body  -ContentType "application/json"
}

New-UDPage -Name "REST APIs" -Icon code -Content {
    New-UDPageHeader -Title "REST APIs" -Icon "code" -Description "Create REST APIs using PowerShell." -DocLink "https://adamdriscoll.gitbooks.io/powershell-universal-dashboard/content/rest-apis.html"
    New-UDExample -Title "Return data" -Description "Return data from REST APIs." -Script $CreateRestApis -NoRender
    New-UDExample -Title "Parameters" -Description "Accept parameters for your REST APIs." -Script $Parameters -NoRender
    New-UDExample -Title "POST Data" -Description "Post data to an endpoint." -Script $PostData -NoRender
}