API de calculadora simples no API Gateway - Amazon API Gateway

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

API de calculadora simples no API Gateway

Nossa API de calculadora simples expõe três métodos (GET, POST, GET) para invocar o Função de calculadora simples do Lambda. Uma representação gráfica dessa API é mostrada da seguinte forma:


          API de calculadora simples para SDK gerado

Esses três métodos mostram maneiras diferentes de fornecer a entrada para a função do Lambda de backend para executar a mesma operação:

  • O método GET /?a=...&b=...&op=... usa os parâmetros de consulta para especificar a entrada.

  • O método POST / usa uma carga JSON de {"a":"Number", "b":"Number", "op":"string"} para especificar a entrada.

  • O método GET /{a}/{b}/{op} usa os parâmetros de caminho para especificar a entrada.

Se não estiver definido, o API Gateway gerará o nome do método de SDK correspondente, combinando as partes de método e caminho HTTP. A parte do caminho raiz (/) é referida como Api Root. Por exemplo, o nome do método de SDK Java padrão para o método de API de GET /?a=...&b=...&op=... é getABOp, o nome do método de SDK padrão para POST / é postApiRoot, e o nome do método de SDK padrão para GET /{a}/{b}/{op} é getABOp. SDKs individuais podem personalizar a convenção. Consulte a documentação na origem do SDK gerado para obter os nomes de método específicos do SDK.

Você pode, e deve, substituir os nomes de método de SDK padrão, especificando a propriedade operationName em cada método de API. Você pode fazer isso ao criar o método de API ou ao atualizar o método de API usando a API REST do API Gateway. Na definição do Swagger da API, você pode definir o operationId para obter o mesmo resultado.

Antes de mostrar como chamar esses métodos usando um SDK gerado pelo API Gateway para essa API, vamos lembrar brevemente como configurá-los. Para obter instruções detalhadas, consulte Criação de uma API REST no Amazon API Gateway. Se você ainda é iniciante com o API Gateway, consulte Criar uma API REST do API Gateway com integração do Lambda primeiro.

Criar modelos para entrada e saída

Para especificar uma entrada de tipo forte no SDK, criamos um modelo Input para a API: Para descrever o tipo de dados do corpo de resposta, criamos um modelo Output e um Result.

Como criar modelos para entrada, saída e resultado
  1. No painel de navegação principal, selecione Modelos.

  2. Escolha Criar modelo.

  3. Em Nome, insira input.

  4. Em Tipo de conteúdo, insira application/json.

    Se nenhum tipo de conteúdo correspondente for encontrado, a validação da solicitação não será executada. Para usar o mesmo modelo, independentemente do tipo de conteúdo, insira $default.

  5. Em Esquema do modelo, insira o seguinte modelo:

    { "$schema" : "$schema": "http://json-schema.org/draft-04/schema#", "type":"object", "properties":{ "a":{"type":"number"}, "b":{"type":"number"}, "op":{"type":"string"} }, "title":"Input" }
  6. Escolha Criar modelo.

  7. Repita as etapas a seguir para criar um modelo Output e um Result.

    Para o modelo Output, insira o seguinte para o Esquema do modelo:

    { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "c": {"type":"number"} }, "title": "Output" }

    Para o modelo Result, insira o seguinte para o Esquema do modelo. Substitua o ID da API abc123 pelo o ID de sua API.

    { "$schema": "http://json-schema.org/draft-04/schema#", "type":"object", "properties":{ "input":{ "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Input" }, "output":{ "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Output" } }, "title":"Result" }

Configurar parâmetros de consulta do método GET /

Para o método GET /?a=..&b=..&op=.., os parâmetros de consulta estão declarados em Method Request:

Como configurar parâmetros de string de consulta GET/URL
  1. Na seção Solicitação de método para o método GET no recurso de raiz (/), selecione Editar.

  2. Selecione Parâmetros de string de consulta de URL e faça o seguinte:

    1. Escolha Add query string (Adicionar string de consulta).

    2. Em Nome, insira a.

    3. Mantenha Obrigatório e Armazenamento em cache desativados.

    4. Mantenha Armazenamento em cache desativado.

    Repita as mesmas etapas e crie uma string de consulta chamada b e uma string de consulta chamada op.

  3. Escolha Save (Salvar).

Configurar o modelo de dados para a carga como entrada para o backend

Para o método POST /, criamos o modelo Input e o adicionamos à solicitação de método para definir a forma dos dados de entrada.

Como configurar o modelo de dados para a carga útil como entrada para o back-end
  1. Na seção Solicitação de método para o método POST no recurso de raiz (/), selecione Editar.

  2. Selecione Corpo da solicitação.

  3. Escolha Add model (Adicionar modelo).

  4. Em Tipo de conteúdo, insira application/json.

  5. Em Modelo, selecione Entrada.

  6. Escolha Save (Salvar).

Com esse modelo, os clientes da sua API podem chamar o SDK para especificar a entrada, instanciando um objeto Input. Sem esse modelo, seus clientes precisariam criar o objeto de dicionário para representar a entrada JSON para a função do Lambda.

Configurar o modelo de dados para a saída do resultado do backend

Para todos os três métodos, criamos o modelo Result e o adicionamos ao Method Response do método para definir a forma da saída retornada pela função do Lambda.

Como configurar o modelo de dados para a saída do resultado do back-end
  1. Selecione o recurso /{a}/{b}/{op} e o método GET.

  2. Na guia Resposta de método, em Resposta 200, selecione Editar.

  3. Em Corpo da resposta, selecione Adicionar modelo.

  4. Em Tipo de conteúdo, insira application/json.

  5. Em Modelo, selecione Resultado.

  6. Escolha Save (Salvar).

Com esse modelo, os clientes da sua API podem analisar uma saída bem-sucedida, lendo as propriedades de um objeto Result. Sem esse modelo, os clientes precisariam criar o objeto de dicionário para representar a saída JSON.