Tutorial: Creación de una API de REST con integración no de proxy HTTP
En este tutorial creará una API desde cero utilizando la consola de Amazon API Gateway. La consola se puede considerar como un estudio de diseño de la API y se puede utilizar para definir el ámbito de las características de API, para probar su comportamiento, para crear la API y para implementar la API en etapas.
Temas
Crear una API con integración de HTTP personalizada
Esta sección le guía por los pasos para crear recursos, exponer métodos en un recurso, configurar un método para lograr los comportamientos de la API deseados y probar e implementar la API.
En este paso, se crea una API vacía. En los siguientes pasos, debe crear recursos y métodos para conectar la API al punto de conexión http://petstore-demo-endpoint.execute-api.com/petstore/pets
mediante una integración HTTP sin proxy.
Creación de una API
Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway
. -
Si es la primera vez que utiliza API Gateway, verá una página en la que aparecen las características del servicio. En REST API, elija Build (Compilación). Cuando aparezca el menú emergente Create Example API (Crear API de ejemplo), elija OK (Aceptar).
Si esta no es la primera vez que utiliza API Gateway, elija Create API (Crear API). En REST API, elija Build (Compilación).
En API name (Nombre de la API), escriba
HTTPNonProxyAPI
.(Opcional) En Description (Descripción), introduzca una descripción.
Mantenga Tipo de punto de conexión de la API establecido en Regional.
Seleccione Crear API.
El árbol Resources (Recursos) muestra el recurso raíz (/
) sin métodos. En este ejercicio, vamos a desarrollar la API con la integración HTTP personalizada del sitio web de PetStore (http://petstore-demo-endpoint.execute-api.com/petstore/pets). Con fines ilustrativos, crearemos un recurso /pets
como un elemento secundario de la raíz y expondremos un método GET en este recurso para que un cliente pueda recuperar una lista de los elementos Pets disponibles en el sitio web de PetStore.
Para crear un recurso /pets
Elija Crear recurso.
Mantenga Recurso proxy desactivado.
Mantenga Ruta del recurso en
/
.En Nombre del recurso, escriba
pets
.Mantenga desactivado CORS (uso compartido de recursos entre orígenes).
Elija Crear recurso.
En este paso, se crea un método GET
en el recurso /pets. El método GET
está integrado con el sitio web http://petstore-demo-endpoint.execute-api.com/petstore/pets
. Otras opciones para un método de API incluyen las siguientes:
-
POST, que se utiliza principalmente para crear recursos secundarios.
-
PUT, que se utiliza principalmente para actualizar los recursos existentes (y, aunque no es recomendable, puede utilizarse para crear recursos secundarios).
-
DELETE, que se utiliza para eliminar recursos.
-
PATCH, que se utiliza para actualizar los recursos.
-
HEAD, que se utiliza principalmente en escenarios de pruebas. Es igual que GET, pero no devuelve la representación de los recursos.
-
OPTIONS, que pueden usar los intermediarios para obtener la información sobre las opciones de comunicación disponibles para el servicio de destino.
En el caso del HTTP method (Método HTTP) de la solicitud de integración, debe elegir uno de los métodos compatibles con el backend. Para HTTP
o Mock
integration
, es razonable que la solicitud del método y la solicitud de integración usen el mismo verbo HTTP. Para otros tipos de integración, la solicitud del método usará probablemente un verbo HTTP diferente del de la solicitud de integración. Por ejemplo, para llamar a una función de Lambda, la solicitud de integración debe utilizar POST
para invocar la función, mientras que la solicitud del método puede utilizar cualquier verbo HTTP en función de la lógica de la función de Lambda.
Para crear un método GET
en el recurso /pets
Seleccione el recurso /pets.
Elija Crear método.
En Tipo de método, seleccione GET.
En Tipo de integración, seleccione Integración HTTP.
Mantenga desactivada Integración de proxy HTTP.
En Método HTTP, seleccione GET.
En URL del punto de conexión, introduzca
http://petstore-demo-endpoint.execute-api.com/petstore/pets
.El sitio web de PetStore le permite recuperar una lista de elementos
Pet
por tipo de mascota, por ejemplo, "Perro" o "Gato", en una determinada página.En Tratamiento de contenido, seleccione Acceso directo.
Elija Parámetros de cadenas de consulta de URL.
El sitio web de PetStore utiliza los parámetros de cadena de consulta
type
ypage
para aceptar una entrada. Se agregan los parámetros de cadena de consulta a la solicitud del método y se asignan a los parámetros de cadena de consulta correspondientes de la solicitud de integración.Para agregar parámetros de cadena de consulta, haga lo siguiente:
Elija Add query string (Añadir cadena de consulta).
En Nombre, introduzca
type
.Mantenga desactivados Obligatorio y Almacenamiento en caché.
Repita los pasos anteriores para crear una cadena de consulta adicional con el nombre
page
.Elija Crear método.
El cliente ahora puede proporcionar un tipo de mascota y un número de página como parámetros de cadena de consulta cuando envíe una solicitud. Estos parámetros de entrada deben mapearse a los parámetros de cadena de consulta de la integración para reenviar los valores de entrada a nuestro sitio web de PetStore en el backend.
Para mapear los parámetros de entrada a la solicitud de integración
En la pestaña Solicitud de integración, en Configuración de la solicitud de integración, seleccione Editar.
Elija Parámetros de cadenas de consulta de URL y luego haga lo siguiente:
Seleccione Añadir parámetro de cadena de consulta.
En Nombre, escriba
type
.En Mapeado de, introduzca
method.request.querystring.type
.Mantenga Almacenamiento en caché desactivado.
Seleccione Añadir parámetro de cadena de consulta.
En Nombre, escriba
page
.En Mapeado de, introduzca
method.request.querystring.page
.Mantenga Almacenamiento en caché desactivado.
Seleccione Guardar.
Para probar el API
-
Elija la pestaña Prueba. Puede que tenga que elegir el botón de flecha hacia la derecha para mostrar la pestaña.
-
En Cadenas de consulta, escriba
type=Dog&page=2
. Seleccione Probar.
El resultado es similar al siguiente:
Ahora que la prueba se ha realizado correctamente, podemos implementar la API para ponerla a disposición del público en general.
Elija Deploy API (Implementar API).
En Etapa, seleccione Nueva etapa.
En Stage name (Nombre de etapa), escriba
Prod
.(Opcional) En Description (Descripción), introduzca una descripción.
Elija Implementar.
-
(Opcional) En Detalles de la etapa, para URL de invocación, puede elegir el icono de copia para copiar la URL de invocación de su API. Puede utilizar esto con herramientas como Postman
y cURL para probar la API.
Si utiliza un SDK para crear un cliente, puede llamar a los métodos expuestos por el SDK para firmar la solicitud. Para obtener más información, consulte los AWSSDK
nota
Cuando se realicen cambios en la API, deberá volver a implementar la API para que las características nuevas o actualizadas estén disponibles antes de volver a invocar la URL de la solicitud.
(Opcional) Parámetros de la solicitud de mapeo
Asignación de parámetros de solicitudes para una API de API Gateway
En este tutorial, se muestra cómo crear un parámetro de ruta de {petId}
en la solicitud de método de la API para especificar un ID de elemento, asignarlo al parámetro de ruta {id}
de la URL de la solicitud de integración y enviar la solicitud al punto de conexión HTTP.
nota
Si introduce una letra con las mayúsculas o minúsculas incorrectas (por ejemplo, una letra minúscula en lugar de una mayúscula), se producirán errores más adelante en el tutorial.
Paso 1: Crear recursos
En este paso, se crea un recurso con un parámetro de ruta {petId}.
Para crear el recurso {petID}
-
Seleccione el recurso /pets y, a continuación, elija Crear recurso.
Mantenga Recurso proxy desactivado.
En Ruta de recurso, seleccione /pets/.
En Nombre del recurso, escriba
{petId}
.Utilice llaves (
{ }
) alrededor depetId
para que aparezca /pets/{petId}.Mantenga desactivado CORS (uso compartido de recursos entre orígenes).
Elija Crear recurso.
Paso 2: Crear y probar los métodos
En este paso, se crea un método GET
con un parámetro de ruta {petId}
.
Para configurar el método GET
Seleccione el recurso /{petId} y, a continuación, elija Crear método.
En Tipo de método, seleccione GET.
En Tipo de integración, seleccione Integración HTTP.
Mantenga desactivada Integración de proxy HTTP.
En Método HTTP, seleccione GET.
En URL del punto de conexión, introduzca
http://petstore-demo-endpoint.execute-api.com/petstore/pets/{id}
En Tratamiento de contenido, seleccione Acceso directo.
Mantenga activado Tiempo de espera predeterminado.
Elija Crear método.
Ahora asigne el parámetro de ruta {petId}
que acaba de crear al parámetro de ruta {id}
en la URL del punto de conexión HTTP de la solicitud de integración. La URL del punto de conexión HTTP era http://petstore-demo-endpoint.execute-api.com/petstore/pets/{id}
.
Para mapear el parámetro de ruta {petId}
-
En la pestaña Solicitud de integración, en Configuración de la solicitud de integración, seleccione Editar.
Elija los Parámetros de la ruta URL.
-
API Gateway crea un parámetro de ruta para la solicitud de integración denominado petId. Sin embargo, este parámetro de ruta no es válido para la URL del punto de conexión HTTP que configuró como integración de backend. El punto de conexión HTTP utiliza
{id}
como parámetro de ruta. En Nombre, elimine petId e ingreseid
.Esto asigna el parámetro de ruta de la solicitud del método de
petId
al parámetro de ruta de la solicitud de integración deid
. Seleccione Guardar.
Ahora pruebe el método.
Para probar el método
-
Elija la pestaña Prueba. Puede que tenga que elegir el botón de flecha hacia la derecha para mostrar la pestaña.
En Ruta, en petId, introduzca
4
.Seleccione Test (Probar).
Si todo sale bien, en Cuerpo de la respuesta se mostrará lo siguiente:
{ "id": 4, "type": "bird", "price": 999.99 }
Paso 3: Implementar la API
En este paso, implementará la API para que pueda empezar a llamarla fuera de la consola de API Gateway.
Para implementar la API
Elija Deploy API (Implementar API).
En Etapa, seleccione Prod.
(Opcional) En Description (Descripción), introduzca una descripción.
Elija Deploy (Implementar).
Paso 4: Probar la API
En este paso, saldrá de la consola de API Gateway y utilizará la API para obtener acceso al punto de enlace HTTP.
-
En el panel de navegación principal, elija Etapa.
-
En Detalles de la etapa, elija el icono de copia para copiar la URL de invocación de la API.
Debe tener un aspecto similar al siguiente:
https://
my-api-id
.execute-api.region-id
.amazonaws.com/prod -
Introduzca esta URL en el cuadro de dirección de una nueva pestaña del navegador y añada
/pets/4
a la URL antes de enviar su solicitud. -
El navegador devolverá lo siguiente:
{ "id": 4, "type": "bird", "price": 999.99 }
Siguientes pasos
Puede personalizar aún más su API activando la validación de solicitudes, transformando los datos o creando respuestas de puerta de enlace personalizadas.
Para explorar más formas de personalizar su API, consulte los siguientes tutoriales:
-
Para obtener más información sobre la validación de solicitud, consulte Configuración de la validación básica de solicitudes en API Gateway.
-
Para obtener información sobre cómo transformar las cargas de solicitudes y respuestas, consulte Configuración de las transformaciones de datos en API Gateway.
-
Para obtener información sobre cómo crear respuestas de puerta de enlace personalizadas consulte Configurar una respuesta de gateway para una API REST mediante la consola de API Gateway.