Auf dieser Seite sind die Ausnahmen aufgelistet, die von der endpoints
-Bibliothek zur Verfügung gestellt werden, sowie die von Cloud Endpoints Frameworks unterstützten HTTP-Statuscodes.
In vielen Situationen möchten Sie vielleicht gängige HTTP-Statuscodes verwenden, um einem Nutzer anzuzeigen, ob seine API-Anfrage erfolgreich war oder nicht. Wenn ein Nutzer beispielsweise versucht, eine nicht vorhandene Entität abzurufen, können Sie einen HTTP-404
-Statuscode senden und damit mitteilen, dass keine Entität mit der ID entityId
vorhanden ist.
Zum Senden gängiger HTTP-Statuscodes können Sie wie folgt eine von der endpoints
-Bibliothek bereitgestellte Ausnahme auslösen:
Von Endpoints Frameworks ausgegebene Ausnahmen
Endpoints Frameworks gibt die folgenden Ausnahmen aus. Diese entsprechen spezifischen HTTP-Statuscodes:
Ausnahme | Zugehöriger HTTP-Statuscode |
---|---|
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 |
Unterstützte HTTP-Statuscodes
Cloud Endpoints Frameworks unterstützt in API-Antworten einen Teil der HTTP-Statuscodes. Die unterstützten Codes werden in der folgenden Tabelle beschrieben.
HTTP-Statuscodes | Unterstützung |
---|---|
HTTP 2xx | Endpoints Frameworks geht bei einer erfolgreichen Rückgabe der API-Methode normalerweise von HTTP 200 aus. Wenn der Antworttyp der API-Methode void oder der Rückgabewert der API-Methode null ist, wird stattdessen HTTP 204 festgelegt. |
HTTP 3xx | HTTP 3xx-Codes werden nicht unterstützt. Bei der Verwendung von HTTP 3xx-Codes wird HTTP 404 zurückgegeben. |
HTTP 4xx | Es werden nur die folgenden HTTP 4xx-Codes unterstützt:
404 zurückgegeben. Dies gilt jedoch nicht für die folgenden Codes:
|
HTTP 5xx | Alle HTTP 5xx-Statuscodes werden in der Client-Antwort in HTTP 503 konvertiert. |
Eigene Ausnahmeklassen erstellen
Wenn Sie für andere HTTP-Statuscodes andere Ausnahmeklassen erstellen möchten, müssen Sie dazu abgeleitete Klassen von com.google.api.server.spi.ServiceException
erstellen. Das folgende Snippet zeigt, wie Sie eine Ausnahmeklasse erstellen, die den Statuscode HTTP 408
repräsentiert:
Nicht unterstützte HTTP-Statuscodes verwenden
Sie können auch HTTP-Statuscodes verwenden, die nicht in der obigen Liste der unterstützten Codes enthalten sind. Beachten Sie, dass in diesem Fall nicht beabsichtigte Folgen für Clientbibliotheken mit Zugriff auf die API entstehen können. Wenn Sie nicht unterstützte Fehlercodes verwenden möchten, erstellen Sie wie im vorherigen Abschnitt beschrieben eine eigene Ausnahmeklasse und fügen Sie einen neuen Servlet-Initialisierungsparameter enableExceptionCompatibility
zu EndpointsServlet
hinzu.
<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>