Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-05-29 GMT+08:00

Criação de uma resposta de grupo

Função

Esta API é usada para criar uma resposta para um grupo de APIs.

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/gateway-responses

Tabela 1 Parâmetros de caminho

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.

group_id

Sim

String

ID do grupo da API.

Parâmetros de solicitação

Tabela 2 Parâmetros do cabeçalho 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.

Tabela 3 Parâmetros de corpo de solicitação

Parâmetro

Obrigatório

Tipo

Descrição

name

Não

String

Nome da resposta.

responses

Não

Map<String,ResponseInfo>

Definição do tipo de resposta, que inclui uma chave e um valor. Opções da chave:

  • AUTH_FAILURE: autenticação falhou.

  • AUTH_HEADER_MISSING: a fonte de identidade está faltando.

  • AUTHORIZER_FAILURE: falha na autenticação personalizada.

  • AUTHORIZER_CONF_FAILURE: houve um erro de autorizador personalizado.

  • AUTHORIZER_IDENTITIES_FAILURE: a origem de identidade do autorizador personalizado é inválida.

  • BACKEND_UNAVAILABLE: o serviço de back-end não está disponível.

  • BACKEND_TIMEOUT: a comunicação com o serviço de back-end expirou.

  • THROTTLED: o pedido foi rejeitado devido ao estrangulamento da solicitação.

  • UNAUTHORIZED: a aplicação que você está usando não foi autorizada a chamar a API.

  • ACCESS_DENIED: acesso negado.

  • NOT_FOUND: nenhuma API foi encontrada.

  • REQUEST_PARAMETERS_FAILURE: os parâmetros da solicitação estão incorretos.

  • DEFAULT_4XX: outro erro 4XX ocorreu.

  • DEFAULT_5XX: outro erro 5XX ocorreu.

Cada tipo de erro está no formato JSON.

Tabela 4 ResponseInfo

Parâmetro

Obrigatório

Tipo

Descrição

status

Não

Integer

Código de status HTTP da resposta.

body

Não

String

Modelo de corpo de resposta.

Parâmetros de resposta

Código de status: 201

Tabela 5 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

name

String

Nome da resposta.

responses

Map<String,ResponseInfoResp>

Definição do tipo de resposta, que inclui uma chave e um valor. Opções da chave:

  • AUTH_FAILURE: autenticação falhou.

  • AUTH_HEADER_MISSING: a fonte de identidade está faltando.

  • AUTHORIZER_FAILURE: falha na autenticação personalizada.

  • AUTHORIZER_CONF_FAILURE: houve um erro de autorizador personalizado.

  • AUTHORIZER_IDENTITIES_FAILURE: a origem de identidade do autorizador personalizado é inválida.

  • BACKEND_UNAVAILABLE: o serviço de back-end não está disponível.

  • BACKEND_TIMEOUT: a comunicação com o serviço de back-end expirou.

  • THROTTLED: o pedido foi rejeitado devido ao estrangulamento da solicitação.

  • UNAUTHORIZED: a aplicação que você está usando não foi autorizada a chamar a API.

  • ACCESS_DENIED: acesso negado.

  • NOT_FOUND: nenhuma API foi encontrada.

  • REQUEST_PARAMETERS_FAILURE: os parâmetros da solicitação estão incorretos.

  • DEFAULT_4XX: outro erro 4XX ocorreu.

  • DEFAULT_5XX: outro erro 5XX ocorreu.

Cada tipo de erro está no formato JSON.

id

String

ID da resposta.

default

Boolean

Indica se a resposta do grupo é a resposta padrão.

create_time

String

Tempo de criação.

update_time

String

Hora da atualização.

Tabela 6 ResponseInfoResp

Parâmetro

Tipo

Descrição

status

Integer

Código de status HTTP da resposta.

body

String

Modelo de corpo de resposta.

default

Boolean

Indica se a resposta é a resposta padrão.

Código de status: 400

Tabela 7 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 401

Tabela 8 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 403

Tabela 9 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 404

Tabela 10 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 500

Tabela 11 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Exemplo de solicitações

{
  "name" : "response_demo"
}

Exemplo de respostas

Código de status: 201

Criado

{
  "create_time" : "2020-08-12T14:52:02.829753306+08:00",
  "update_time" : "2020-08-12T14:52:02.829753306+08:00",
  "default" : false,
  "id" : "e839b367e10f4ab19d1c5008e476b83a",
  "name" : "response_demo",
  "responses" : {
    "ACCESS_DENIED" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 403
    },
    "AUTHORIZER_CONF_FAILURE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 500
    },
    "AUTHORIZER_FAILURE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 500
    },
    "AUTHORIZER_IDENTITIES_FAILURE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 401
    },
    "AUTH_FAILURE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 401
    },
    "AUTH_HEADER_MISSING" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 401
    },
    "BACKEND_TIMEOUT" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 504
    },
    "BACKEND_UNAVAILABLE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 502
    },
    "DEFAULT_4XX" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true
    },
    "DEFAULT_5XX" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true
    },
    "NOT_FOUND" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 404
    },
    "REQUEST_PARAMETERS_FAILURE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 400
    },
    "THROTTLED" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 429
    },
    "UNAUTHORIZED" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 401
    }
  }
}

Código de status: 400

Solicitação inválida

{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:name. 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.3001",
  "error_msg" : "API group c77f5e81d9cb4424bf704ef2b0ac7600 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

201

Criado

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.