Esta página apresenta uma lista das exceções fornecidas pela biblioteca endpoints
, bem como os códigos de estado HTTP suportados pelos frameworks do Cloud Endpoints.
Em muitas situações, pode querer usar códigos de estado HTTP comuns para indicar o êxito ou a falha de um pedido de API de um utilizador. Por exemplo, se um utilizador estiver a tentar obter uma entidade que não existe, é recomendável enviar um código de estado HTTP 404
para indicar que não existe nenhuma entidade com o ID: entityId
.
Pode enviar códigos de estado HTTP comuns ao gerar uma exceção fornecida pela biblioteca endpoints
da seguinte forma:
Exceções fornecidas pelos frameworks de pontos finais
O Endpoints Frameworks fornece as seguintes exceções, correspondentes a códigos de estado HTTP específicos:
Exceção | Código de estado HTTP correspondente |
---|---|
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 |
Códigos de estado HTTP suportados
Os frameworks do Cloud Endpoints suportam um subconjunto de códigos de estado HTTP nas respostas da API. A tabela seguinte descreve os códigos suportados.
Códigos de estado HTTP | Apoio técnico |
---|---|
HTTP 2xx | Normalmente, o HTTP 200 é assumido pelos Endpoints Frameworks se o método da API for devolvido com êxito.Se o tipo de resposta do método da API for void ou o valor de retorno do método da API for null , é definido o HTTP 204 . |
HTTP 3xx | Os códigos HTTP 3xx não são suportados. A utilização de códigos HTTP 3xx resulta numa resposta HTTP 404 . |
HTTP 4xx | Apenas são suportados os seguintes códigos HTTP 4xx:
404 , exceto os seguintes:
|
HTTP 5xx | Todos os códigos de estado HTTP 5xx são convertidos em HTTP 503 na resposta do cliente. |
Criar as suas próprias classes de exceções
Se quiser criar outras classes de exceções para outros códigos de estado HTTP, tem de criar uma subclasse de com.google.api.server.spi.ServiceException
. O fragmento seguinte mostra como criar uma classe de exceção que representa um código de estado HTTP 408
:
Usar códigos de estado HTTP não suportados
É possível usar códigos de estado HTTP que não estejam na lista de códigos suportados acima. Tenha em atenção que, se decidir fazê-lo, pode ter consequências não intencionais
para as bibliotecas cliente que acedem à API. Para usar códigos de erro não suportados,
crie a sua própria classe de exceção, conforme descrito na secção anterior, e
adicione um novo parâmetro de inicialização do servlet enableExceptionCompatibility
para
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>