Tutorial: Crie uma API REST com uma integração de não proxy de HTTP
Neste tutorial, você criará uma API do zero usando o console do Amazon API Gateway. Você pode pensar no console como um estúdio de design de API e usá-lo para definir o escopo dos recursos da API, testar seus comportamentos, criar a API e implantá-la em estágios.
Criar uma API com integração personalizada HTTP
Esta seção orienta você pelas etapas necessárias para criar recursos, expor métodos em um recurso, configurar um método para alcançar os comportamentos de API desejados e testar e implantar a API.
Nesta etapa, você cria uma API vazia. Nas etapas a seguir, você vai criar recursos e métodos para conectar a API ao endpoint http://petstore-demo-endpoint.execute-api.com/petstore/pets
usando uma integração HTTP sem proxy.
Como criar uma API
Inicie uma sessão no console do API Gateway em https://console.aws.amazon.com/apigateway
. -
Se esta for a primeira vez que você usa o API Gateway, você verá uma página com os recursos do serviço. Em REST API, escolha Build (Criar). Quando o pop-up Create Example API (Criar API de exemplo) for exibido, escolha OK.
Se essa não for a primeira vez que você usa o API Gateway, escolha Create API (Criar API). Em REST API, escolha Build (Criar).
Em API name (Nome da API), insira
HTTPNonProxyAPI
.(Opcional) Em Description (Descrição), insira uma descrição.
Mantenha Tipo de endpoint de API definido como Regional.
Selecione Criar API.
A árvore Resources (Recursos) mostra o recurso raiz (/
) sem métodos. Neste exercício, criaremos a API com a integração HTTP personalizada do site da PetStore (http://petstore-demo-endpoint.execute-api.com/petstore/pets.) Para fins de ilustração, vamos criar um recurso /pets
como um filho da raiz e expor um método GET nesse recurso para um cliente recuperar uma lista de itens de animais de estimação disponíveis no site PetStore.
Como criar um recurso /pets
Selecione Criar recurso.
Mantenha Recurso proxy desativado.
Mantenha Caminho do recurso como
/
.Em Resource Name (Nome do recurso), insira
pets
.Mantenha CORS (Compartilhamento de recursos de origem cruzada) desativado.
Selecione Criar recurso.
Nesta etapa, você vai criar um método GET
para o recurso /pets. O método GET
é integrado ao site http://petstore-demo-endpoint.execute-api.com/petstore/pets
. São outras opções para um método de API:
-
POST, usado principalmente para criar recursos filho.
-
PUT, usado principalmente para atualizar recursos existentes (e, embora não seja recomendado, pode ser usado para criar recursos filho).
-
DELETE, usado para excluir recursos.
-
PATCH, usado para atualizar recursos.
-
HEAD, usado, principalmente em cenários de teste. É o mesmo que GET, mas não retorna a representação do recurso.
-
OPTIONS, que pode ser usado por autores de chamadas para obter informações sobre opções de comunicação disponíveis para o serviço de destino.
Para o HTTP method (Método HTTP) da solicitação de integração, você deve escolher um que seja compatível com o backend. Para HTTP
ou Mock
integration
, faz sentido que a solicitação de método e a solicitação de integração usem o mesmo verbo HTTP. Para outros tipos de integração, a solicitação de método provavelmente usará um verbo HTTP diferente da solicitação de integração. Por exemplo, para chamar uma função do Lambda, a solicitação de integração deve usar POST
para invocar a função, enquanto a solicitação de método pode usar qualquer verbo HTTP, dependendo da lógica da função do Lambda.
Como criar um método GET
no recurso /pets
Selecione o recurso /pets.
Escolha Criar método.
Em Tipo de método, selecione GET.
Em Tipo de integração, selecione Integração HTTP.
Mantenha a opção Integração do proxy HTTP desativada.
Em Método HTTP, selecione GET.
Em URL do endpoint, insira
http://petstore-demo-endpoint.execute-api.com/petstore/pets
.O site PetStore permite que você recupere uma lista de itens
Pet
por tipo de animal de estimação, por exemplo, “Cão” ou “Gato”, em uma página específica.Em Manuseio de conteúdo, selecione Passagem.
Selecione Parâmetros de string de consulta de URL.
Ele usa os parâmetros de string de consulta
type
epage
para aceitar uma entrada. Adicione os parâmetros de string de consulta à solicitação de método e mapeie-os para os parâmetros de string de consulta correspondentes da solicitação de integração.Para adicionar parâmetros de string de consulta, faça o seguinte:
Escolha Add query string (Adicionar string de consulta).
Em Nome, insira
type
.Mantenha Obrigatório e Armazenamento em cache desativados.
Repita as etapas anteriores para criar uma string de consulta adicional com o nome
page
.Escolha Criar método.
O cliente agora pode fornecer um tipo de animal de estimação e um número de página como parâmetros de string de consulta ao enviar uma solicitação. Esses parâmetros de entrada devem ser mapeados para parâmetros da sequência de consulta da integração para encaminhar os valores de entrada para nosso site PetStore no backend.
Como associar parâmetros de entrada à solicitação de integração
Na guia Solicitação de integração, em Configurações de solicitação de integração, selecione Editar.
Selecione Parâmetros de string de consulta de URL e faça o seguinte:
Selecione Adicionar parâmetro de string de consulta.
Em Nome, digite
type
.Em Mapeado de, insira
method.request.querystring.type
.Mantenha Armazenamento em cache desativado.
Selecione Adicionar parâmetro de string de consulta.
Em Nome, digite
page
.Em Mapeado de, insira
method.request.querystring.page
.Mantenha Armazenamento em cache desativado.
Escolha Salvar.
Como testar a API
-
Selecione a guia Testar. Talvez seja necessário selecionar o botão de seta para a direita para mostrar a guia.
-
Em Strings de consulta, digite
type=Dog&page=2
. Escolha Testar.
O resultado é semelhante ao seguinte:
Agora que o teste foi bem-sucedido, podemos implantar a API para torná-la disponível publicamente.
Escolha Implantar API.
Em Estágio, selecione Novo estágio.
Em Stage name (Nome do estágio), insira
Prod
.(Opcional) Em Description (Descrição), insira uma descrição.
Escolha Implantar.
-
(Opcional) Em Detalhes do estágio, para Invocar URL, é possível selecionar o ícone de cópia para copiar o URL de invocação da API. Você pode usá-lo com ferramentas, como Postman
e cURL para testar sua API.
Se você usar um SDK para criar um cliente, poderá chamar os métodos expostos pelo SDK para assinar a solicitação. Para obter detalhes da implementação, consulte o SDK da AWS
nota
Quando alterações são feitas na sua API, você deve reimplantá-la para disponibilizar os recursos novos ou atualizados antes de invocar novamente a URL da solicitação.
(Opcional) Associar parâmetros de solicitação
Mapear parâmetros de solicitação para uma API do API Gateway
Este tutorial mostra como criar um parâmetro de caminho de {petId}
na solicitação de método da API para especificar um ID de item, associá-lo ao parâmetro de caminho {id}
no URL da solicitação de integração e enviar a solicitação ao endpoint HTTP.
nota
Se você digitar uma letra de tamanho incorreto, por exemplo, minúscula em vez de maiúscula, poderá causar erros mais adiante no processo.
Etapa 1: Criar recursos
Nesta etapa, você vai criar um recurso com um parâmetro de caminho {petId}.
Como criar o recurso {petId}
-
Selecione o recurso /pets e, depois, escolha Criar recurso.
Mantenha Recurso proxy desativado.
Em Caminho do recurso, selecione/pets.
Em Resource Name (Nome do recurso), insira
{petId}
.Use as chaves (
{ }
) ao redor depetId
para que /pets/{petId} seja exibido.Mantenha CORS (Compartilhamento de recursos de origem cruzada) desativado.
Selecione Criar recurso.
Etapa 2: Criar e testar métodos
Nesta etapa, você vai criar um método GET
com um parâmetro de caminho {petId}
.
Como configurar o método GET
Selecione o recurso /{petId} e, depois, Criar método.
Em Tipo de método, selecione GET.
Em Tipo de integração, selecione Integração HTTP.
Mantenha a opção Integração do proxy HTTP desativada.
Em Método HTTP, selecione GET.
Em URL do endpoint, insira
http://petstore-demo-endpoint.execute-api.com/petstore/pets/{id}
.Em Manuseio de conteúdo, selecione Passagem.
Mantenha o Tempo limite padrão ativado.
Escolha Criar método.
Agora você vai associar o parâmetro de caminho {petId}
que você acabou de criar ao parâmetro de caminho {id}
no URL do endpoint HTTP da solicitação de integração. O endpoint HTTP era http://petstore-demo-endpoint.execute-api.com/petstore/pets/{id}
.
Como associar o parâmetro de caminho {petId}
-
Na guia Solicitação de integração, em Configurações de solicitação de integração, selecione Editar.
Selecione Parâmetros de caminho de URL.
-
O API Gateway cria um parâmetro de caminho para a solicitação de integração chamado petId, mas ele não é válido para o URL do endpoint HTTP que você define como a integração de backend. O endpoint HTTP usa
{id}
como o parâmetro de caminho. Em Nome, exclua petId e insiraid
.Isso mapeia o parâmetro de caminho da solicitação de método de
petId
para o parâmetro de caminho da solicitação de integração deid
. Escolha Salvar.
Agora teste o método.
Como testar o método
-
Selecione a guia Testar. Talvez seja necessário selecionar o botão de seta para a direita para mostrar a guia.
Em Caminho para petId, insira
4
.Escolha Test (Testar).
Se bem-sucedido, o Corpo da resposta exibirá o seguinte:
{ "id": 4, "type": "bird", "price": 999.99 }
Etapa 3: implantar a API
Nesta etapa, você implantará a API para poder começar a chamá-la fora do console do API Gateway.
Para implantar a API
Escolha Implantar API.
Em Estágio, selecione Prod.
(Opcional) Em Description (Descrição), insira uma descrição.
Escolha Deploy (Implantar).
Etapa 4: testar a API
Nesta etapa, você sairá do console do API Gateway e usará sua API para acessar o endpoint HTTP.
-
No painel de navegação principal, selecione Estágio.
-
Em Detalhes do estágio, escolha o ícone de cópia para copiar o URL de invocação da API.
A aparência será semelhante à seguinte:
https://
my-api-id
.execute-api.region-id
.amazonaws.com/prod -
Insira este URL na caixa de endereço da nova guia do navegador e anexe
/pets/4
ao URL antes de enviar a solicitação. -
O navegador exibirá o seguinte:
{ "id": 4, "type": "bird", "price": 999.99 }
Próximas etapas
É possível personalizar ainda mais a API ativando a validação de solicitações, transformando dados ou criando respostas de gateway personalizadas.
Para examinar mais formas de personalizar a API, veja os seguintes tutoriais:
-
Para obter mais informações sobre a validação de solicitação, consulte Configurar a validação básica de solicitações no API Gateway.
-
Para obter informações sobre como transformar cargas úteis de solicitação e resposta, consulte Configurar transformações de dados no API Gateway.
-
Para obter informações sobre como criar respostas de gateway personalizadas, consulte Configurar uma resposta de gateway para uma API REST usando o console do API Gateway.