Fehlerbehandlung
Standardmäßig geben Endpunkte eine 200 OK-Meldung zurück, selbst wenn Fehler auftreten. Tritt ein Fehler auf, erhalten Sie eine leere Antwort vom Endpunkt. Dieses Dokument zeigt verschiedene Möglichkeiten, Fehler innerhalb von APIs zu behandeln.
Fehler automatisch zurückgeben
Um Fehler automatisch von APIs zurückzugeben, können Sie das Standardverhalten ändern, indem Sie den Parameter -ErrorAction von New-PSUEndpoint auf Stop setzen. Alle Fehler führen dann dazu, dass ein 500 Internal Server Error mit einer Liste der Fehler und dem Stacktrace zurückgegeben wird.
Terminierende Fehler geben immer einen 500 Internal Server Error zurück.
New-PSUEndpoint -Url "/error" -Endpoint {
throw "Uh oh!"
} -ErrorAction stop
New-PSUEndpoint -Url /error2 -Endpoint {
Write-Error "Whoa!"
} -ErrorAction StopSie werden ein unterschiedliches Verhalten in Windows PowerShell und PowerShell 7 feststellen, wenn Sie REST-APIs aufrufen, die Fehler zurückgeben. In Windows PowerShell erhalten Sie einen allgemeinen Fehler, der die Fehlermeldung nicht zurückgibt.
PS C:\Users\adamr> invoke-restmethod http://localhost:5000/error2
invoke-restmethod : The remote server returned an error: (500) Internal Server Error.
At line:1 char:1
+ invoke-restmethod http://localhost:5000/error2
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], Web
Exception
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommandIn PowerShell 7 wird beim Zurückgeben eines Fehlers die Fehlermeldung angezeigt.
Sie können die Fehlermeldung in Windows PowerShell mit der folgenden Syntax abrufen.
Fehler manuell zurückgeben
Um Fehler manuell zurückzugeben, müssen Sie das Cmdlet New-PSUApiResponse verwenden. Dieses Cmdlet erlaubt es Ihnen, den Statuscode und den Body für die Antwort zu definieren.
In diesem Beispiel geben wir einen 404-Fehlercode vom Endpunkt zurück.
Ähnlich wie die automatischen Fehlercodes werden manuell zurückgegebene Fehlercodes in PowerShell 7 besser dargestellt. Hier ist ein Beispiel für den Aufruf des Endpunkts.
Beim Aufruf aus Windows PowerShell erhalten Sie einen Fehler, der dem automatisch zurückgegebenen ähnelt.
Sie können festlegen, dass Fehlercodes zurückgegeben werden, wenn bestimmte Bedingungen erfüllt sind, indem Sie Ihr PowerShell-Skript innerhalb des Endpunkts verwenden.
API
Zuletzt aktualisiert
War das hilfreich?