Cette page répertorie les exceptions fournies par la bibliothèque endpoints
, ainsi que les codes d'état HTTP compatibles avec Cloud Endpoints Frameworks.
Dans la plupart des cas, vous devez utiliser des codes d'état HTTP courants pour indiquer le succès ou l'échec d'une requête API. Par exemple, si un utilisateur tente de récupérer une entité qui n'existe pas, vous pouvez envoyer un code d'état HTTP 404
indiquant qu'il n'existe aucune entité correspondant à l'ID entityId
.
Vous pouvez envoyer des codes d'état HTTP courants en insérant une exception fournie par la bibliothèque endpoints
, comme suit :
Exceptions fournies par Endpoints Frameworks
Endpoints Frameworks fournit les exceptions suivantes, correspondant à des codes de statut HTTP spécifiques :
Exception | Code d'état HTTP correspondant |
---|---|
com.google.api.server.spi.response.BadRequestException |
HTTP 400 |
com.google.api.server.spi.response.UnauthorizedException |
HTTP 401 |
com.google.api.server.spi.response.ForbiddenException |
HTTP 403 |
com.google.api.server.spi.response.NotFoundException |
HTTP 404 |
com.google.api.server.spi.response.ConflictException |
HTTP 409 |
com.google.api.server.spi.response.InternalServerErrorException |
HTTP 500 |
com.google.api.server.spi.response.ServiceUnavailableException |
HTTP 503 |
Codes d'état HTTP compatibles
Cloud Endpoints Frameworks est compatible avec un sous-ensemble de codes d'état HTTP dans les réponses d'API. Le tableau suivant décrit les codes compatibles.
Codes d'état HTTP | Compatibilité |
---|---|
HTTP 2xx | Le code HTTP 200 est généralement utilisé par Endpoints Frameworks lorsque la méthode API aboutit.Si la réponse de la méthode API est du type void ou si la valeur renvoyée est null , le code HTTP 204 est utilisé à la place. |
HTTP 3xx | Les codes HTTP 3xx ne sont pas compatibles. L'utilisation de tels codes entraîne une réponse HTTP 404 . |
HTTP 4xx | Seuls les codes HTTP 4xx suivants sont compatibles :
404 , à l'exception des codes suivants :
|
HTTP 5xx | Tous les codes d'état HTTP 5xx sont convertis en HTTP 503 dans la réponse du client. |
Créer vos propres classes d'exceptions
Si vous souhaitez créer des classes d'exceptions pour d'autres codes d'état HTTP, vous pouvez le faire en définissant des sous-classes de com.google.api.server.spi.ServiceException
. L'extrait de code suivant montre comment créer une classe d'exceptions qui représente un code d'état HTTP 408
:
Utiliser des codes d'état HTTP non compatibles
Il est possible d'utiliser des codes d'état HTTP qui ne figurent pas dans la liste ci-dessus. Notez que cela peut avoir des conséquences inattendues pour les bibliothèques clientes qui accèdent à l'API. Pour utiliser des codes d'erreur non compatibles, créez votre propre classe d'exceptions comme indiqué à la section précédente, et ajoutez le paramètre d'initialisation enableExceptionCompatibility
au servlet EndpointsServlet
:
<servlet>
<servlet-name>com.google.api.server.spi.EndpointsServlet</servlet-name>
<servlet-class>com.google.api.server.spi.EndpointsServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<param-value>...</param-value>
</init-param>
<init-param>
<param-name>enableExceptionCompatibility</param-name>
<param-value>true</param-value>
</init-param>
</servlet>