Gestione degli errori
Per impostazione predefinita, gli endpoint restituiscono un messaggio 200 OK anche in presenza di errori. Se si verifica un errore, riceverà una risposta vuota dall'endpoint. Questo documento illustra diversi modi per gestire gli errori all'interno delle API.
Restituzione automatica degli errori
Per restituire automaticamente gli errori dalle API, può modificare il comportamento predefinito impostando il parametro -ErrorAction di New-PSUEndpoint su Stop. Qualsiasi errore comporterà la restituzione di un 500 Internal Server Error con un elenco degli errori e lo stack trace.
Gli errori di tipo terminating restituiranno sempre un 500 Internal Server Error.
New-PSUEndpoint -Url "/error" -Endpoint {
throw "Uh oh!"
} -ErrorAction stop
New-PSUEndpoint -Url /error2 -Endpoint {
Write-Error "Whoa!"
} -ErrorAction StopNoterà un comportamento diverso in Windows PowerShell e in PowerShell 7 quando chiama API REST che restituiscono errori. In Windows PowerShell riceverà un errore generico che non restituisce il messaggio di errore.
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, quando viene restituito un errore, vedrà il messaggio di errore restituito.
Può recuperare il messaggio di errore in Windows PowerShell utilizzando la sintassi seguente.
Restituzione manuale degli errori
Per restituire manualmente gli errori, deve utilizzare il cmdlet New-PSUApiResponse. Questo cmdlet consente di definire il codice di stato e il corpo della risposta.
In questo esempio restituiamo un codice di errore 404 dall'endpoint.
Analogamente ai codici di errore automatici, i codici di errore restituiti manualmente vengono visualizzati meglio in PowerShell 7. Ecco un esempio di chiamata all'endpoint.
Se chiamato da Windows PowerShell, riceverà un errore simile a quello restituito automaticamente.
Può scegliere di restituire codici di errore se sono soddisfatte determinate condizioni, utilizzando il suo script PowerShell all'interno dell'endpoint.
API
Ultimo aggiornamento
È stato utile?