For the complete documentation index, see llms.txt. This page is also available as Markdown.

Gestion des erreurs

Gestion des erreurs pour Universal API.

Par défaut, les points de terminaison renvoient un message 200 OK même en cas d'erreur. Si une erreur se produit, vous obtiendrez une réponse vide du point de terminaison. Ce document présente différentes façons de gérer les erreurs dans les API.

Renvoi automatique des erreurs

Pour renvoyer automatiquement les erreurs des API, vous pouvez modifier le comportement par défaut en définissant le paramètre -ErrorAction de New-PSUEndpoint sur Stop. Toutes les erreurs provoqueront le renvoi d'une erreur 500 Internal Server Error avec une liste des erreurs et la trace de la pile.

Les erreurs avec fin d'exécution renverront toujours une erreur 500 Internal Server Error.

New-PSUEndpoint -Url "/error" -Endpoint { 
   throw "Uh oh!"
} -ErrorAction stop

New-PSUEndpoint -Url /error2 -Endpoint {
    Write-Error "Whoa!"
} -ErrorAction Stop

Vous remarquerez un comportement différent dans Windows PowerShell et PowerShell 7 lors de l'appel de REST APIs qui renvoient des erreurs. Dans Windows PowerShell, vous recevrez une erreur générique qui ne renvoie pas le message d'erreur.

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.InvokeRestMethodCommand

Dans PowerShell 7, lorsqu'une erreur est renvoyée, vous verrez le message d'erreur retourné.

Vous pouvez récupérer le message d'erreur dans Windows PowerShell en utilisant la syntaxe suivante.

Renvoi manuel des erreurs

Pour renvoyer manuellement des erreurs, vous devez utiliser la cmdlet New-PSUApiResponse. Cette cmdlet vous permet de définir le code d'état et le corps de la réponse.

Dans cet exemple, nous renvoyons un code d'erreur 404 depuis le point de terminaison.

Comme pour les codes d'erreur automatiques, les codes d'erreur renvoyés manuellement s'afficheront également mieux dans PowerShell 7. Voici un exemple d'appel du point de terminaison.

Si l'appel est effectué depuis Windows PowerShell, vous recevrez une erreur similaire à celle renvoyée automatiquement.

Vous pouvez choisir de renvoyer des codes d'erreur si certaines conditions sont remplies en utilisant votre script PowerShell dans le point de terminaison.

API

Mis à jour

Ce contenu vous a-t-il été utile ?