Depuração de uma API
Função
Esta API é usada para depurar uma API em um ambiente especificado. O chamador da API deve ter as permissões necessárias para acessar essa API.
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/apis/debug/{api_id}
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
project_id |
Sim |
String |
ID do projeto. Para obter detalhes sobre como obter um ID de projeto, consulte "Apêndice" > "Obtenção de um ID de projeto" neste documento. |
|
instance_id |
Sim |
String |
ID do gateway, que pode ser obtido a partir das informações de gateway no console do APIG. |
|
api_id |
Sim |
String |
ID da API. |
Parâmetros de solicitação
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
X-Auth-Token |
Sim |
String |
Token do usuário. Ele pode ser obtido chamando a API do IAM usada para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é um token. |
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
body |
Não |
String |
Corpo da mensagem, com no máximo 2.097.152 bytes. |
|
header |
Não |
Map<String,String> |
Parâmetros de cabeçalho, com cada valor sendo uma matriz de cadeia de caracteres. Cada nome de parâmetro deve atender aos seguintes requisitos:
NOTA:
Cada nome de cabeçalho é normalizado antes do uso. Por exemplo, x-MY-hEaDer é normalizado como X-My-Header. |
|
method |
Sim |
String |
Método de solicitação da API. Valores de enumeração:
|
|
mode |
Sim |
String |
Modo de depuração:
NOTA:
No modo DEVELOPER, o chamador da API deve ser o provedor da API. No modo CONSUMER, o chamador da API deve ser o provedor da API ou ter sido autorizado a acessar a API em um ambiente específico. |
|
path |
Sim |
String |
Caminho da solicitação da API, começando com uma barra (/) e contendo até 1.024 caracteres.
NOTA:
O caminho da solicitação deve atender aos requisitos para que possa ser decodificado corretamente após a codificação de porcentagem. |
|
query |
Não |
Map<String,String> |
Cadeias de consulta, com cada valor sendo uma matriz de cadeia de caracteres. Cada nome de parâmetro deve atender aos seguintes requisitos:
|
|
scheme |
Sim |
String |
Protocolo de solicitação.
|
|
app_key |
Não |
String |
AppKey usado na solicitação de depuração. |
|
app_secret |
Não |
String |
AppSecret usado na solicitação de depuração. |
|
domain |
Não |
String |
Acesse o nome de domínio da API. Se nenhum valor for especificado, um dos seguintes valores padrão será usado com base no modo:
|
|
stage |
Não |
String |
Ambiente de execução especificado pela solicitação de depuração. Este parâmetro é válido somente quando o modo estiver definido como CONSUMER. Se esse parâmetro não for especificado, o seguinte valor padrão será usado:
|
Parâmetros de resposta
Código de status: 200
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
request |
String |
Corpo da solicitação de depuração. |
|
response |
String |
Corpo da resposta de depuração, com no máximo 2.097.152 bytes. Qualquer conteúdo além desse limite será truncado.
NOTA:
Qualquer conteúdo além do limite de comprimento será truncado e o texto [TRUNCATED] será adicionado ao corpo da resposta. |
|
latency |
Integer |
Duração da depuração em milissegundos. |
|
log |
String |
Depuração de logs. |
Código de status: 400
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
error_code |
String |
Código de erro. |
|
error_msg |
String |
Mensagem de erro. |
Código de status: 401
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
error_code |
String |
Código de erro. |
|
error_msg |
String |
Mensagem de erro. |
Código de status: 403
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
error_code |
String |
Código de erro. |
|
error_msg |
String |
Mensagem de erro. |
Código de status: 404
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
error_code |
String |
Código de erro. |
|
error_msg |
String |
Mensagem de erro. |
Código de status: 500
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
error_code |
String |
Código de erro. |
|
error_msg |
String |
Mensagem de erro. |
Exemplo de solicitações
{
"mode" : "DEVELOPER",
"scheme" : "HTTPS",
"method" : "GET",
"path" : "/test/mock"
}
Exemplo de respostas
Código de status: 200
OK
{
"request" : "GET /test/mock HTTP/1.1\r\nHost: c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.com\r\nUser-Agent: APIGatewayDebugClient/1.0\r\nX-Apig-Mode: debug\r\n\r\n",
"response" : "HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\nConnection: keep-alive\r\nContent-Type: application/json\r\nDate: Mon, 03 Aug 2020 02:51:22 GMT\r\nServer: api-gateway\r\nX-Apig-Latency: 0\r\nX-Apig-Ratelimit-Api: remain:99,limit:100,time:1 minute\r\nX-Apig-Ratelimit-Api-Allenv: remain:14999,limit:15000,time:1 second\r\nX-Request-Id: d4ec6e33148bdeffe8f55b43472d1251\r\n\r\nmock success",
"latency" : 5,
"log" : ""
}
Código de status: 400
Solicitação inválida
{
"error_code" : "APIG.2011",
"error_msg" : "Invalid parameter value,parameterName:mode. Please refer to the support documentation"
}
Código de status: 401
Não autorizado
{
"error_code" : "APIG.1002",
"error_msg" : "Incorrect token or token resolution failed"
}
Código de status: 403
Proibido
{
"error_code" : "APIG.1005",
"error_msg" : "No permissions to request this method"
}
Código de status: 404
Não encontrado
{
"error_code" : "APIG.3002",
"error_msg" : "API 3a955b791bd24b1c9cd94c745f8d1aad does not exist"
}
Código de status: 500
Erro do servidor interno
{
"error_code" : "APIG.9999",
"error_msg" : "System error"
}
Códigos de status
|
Código de status |
Descrição |
|---|---|
|
200 |
OK |
|
400 |
Solicitação inválida |
|
401 |
Não autorizado |
|
403 |
Proibido |
|
404 |
Não encontrado |
|
500 |
Erro do servidor interno |
Códigos de erro
Consulte Códigos de erro.