Prva zahteva prek HTTP
V tem vodniku s PowerShellom preberete podatke prek podatkovnega prehoda: najprej prek vmesnika OData, nato prek lastnega vmesnika HTTP. Potrebujete približno deset minut in nobenega dodatnega programa.
Kaj potrebujete
- delujoči podatkovni prehod in njegov naslov, v primerih
https://daten.example.com; - ključ s pravilom, ki dovoljuje branje vsaj ene tabele: osebni ključ (
wkl_…) ali ključ storitve. Če pravilnik prijave za vaš ključ zahteva 2FA (dvostopenjsko preverjanje identitete), za ta vodnik uporabite ključ samo za branje, za katerega 2FA ne velja; - PowerShell 7 ali Windows PowerShell 5.1.
Koraki
1. Pripravite ključ za sejo
Ključ vnesite tako, da se ne zapiše v zgodovino ukazov:
$h = @{ 'X-Api-Key' = (Read-Host 'Ključ') } $base = 'https://daten.example.com'
2. Preverite, ali prehod odgovarja
Invoke-RestMethod "$base/health/ready"
Odgovor je Healthy. Za ta klic prijava ni potrebna.
3. Izpišite podatkovne zbirke in tabele
(Invoke-RestMethod "$base/odata/v4/" -Headers $h).value | Format-Table name, url (Invoke-RestMethod "$base/odata/v4/fachdaten/dbo/" -Headers $h).value | Select-Object -First 5 | Format-Table name, kind
Prvi seznam vsebuje aliase, ki jih smete brati, drugi pa tabele in poglede ene sheme
(kind = EntitySet). Namesto fachdaten in dbo vstavite imena s svojih seznamov.
4. Preberite, filtrirajte in preštejte vrstice
$r = Invoke-RestMethod "$base/odata/v4/fachdaten/dbo/Artikel?`$top=2&`$count=true&`$filter=Gruppe eq 'S'" -Headers $h $r.'@odata.count' $r.value | Format-Table
@odata.count pove, koliko vrstic skupaj ustreza pogoju, value pa vsebuje prvi dve. Prehod
$filter prevede v SQL, filtrira pa podatkovna zbirka. Krativec (`) pred $ prepreči, da bi
PowerShell $top razumel kot spremenljivko.
5. Iste vrstice preberite prek lastnega vmesnika HTTP
$c = Invoke-RestMethod "$base/api/v1/cf/fachdaten/tables/Artikel.json?`$top=2&`$count=true" -Headers $h $c | Select-Object rowCount, window, totalCount, nextLink $c.data | Format-Table
Lastni vmesnik vrne data, rowCount, window in zaradi $count=true še totalCount. Brez $top
vrne okno privzete velikosti, in če je vrstic več, še povezavo na naslednje okno (nextLink).
Rezultat
Iste podatke ste prebrali prek obeh vmesnikov. Če ključ za tabelo nima pravice za branje, prehod
odgovori z 404, enako kot pri tabeli, ki ne obstaja. Kdor nima pravice, tako niti ne izve, da tabela
obstaja.
Naslednji koraki
- HTTP: specifikacija vmesnika – pisanje, možnosti poizvedb, oblika odgovorov in napak
- HTTP: OData v4 – dokument metapodatkov, združevanje, naslednje strani
- HTTP: prijava – račun Windows, prijava SQL Server, 2FA