Tutorial: Crear una API de REST importando un ejemplo
Puede utilizar la consola de Amazon API Gateway para crear y probar una API REST sencilla con integración HTTP para un sitio web PetStore. La definición de la API está preconfigurada como un archivo de OpenAPI 2.0. Después de cargar la definición de API en API Gateway, puede utilizar la consola de API Gateway para examinar la estructura básica de API o simplemente implementar y probar la API.
La API de ejemplo de PetStore admite los siguientes métodos para que un cliente obtenga acceso al sitio web de backend HTTP de http://petstore-demo-endpoint.execute-api.com/petstore/pets
.
nota
En este tutorial se utiliza un punto de conexión HTTP como ejemplo. Cuando cree sus propias API, le recomendamos que utilice puntos de conexión HTTPS para las integraciones HTTP.
-
GET /
: para leer el acceso del recurso raíz de la API que no se integra con ningún punto de enlace de backend. API Gateway responde con información general del sitio web PetStore. Este es un ejemplo del tipo de integraciónMOCK
. -
GET /pets
: para obtener acceso de lectura al recurso/pets
de la API que se integra con el recurso/pets
de backend asignado. El backend devuelve una página de mascotas disponibles en PetStore. Este es un ejemplo del tipo de integraciónHTTP
. La URL del punto de enlace de integración eshttp://petstore-demo-endpoint.execute-api.com/petstore/pets
. -
POST /pets
: para obtener acceso de escritura al recurso/pets
de la API que se integra con el recurso/petstore/pets
de backend. Tras recibir una solicitud correcta, el backend agrega la mascota especificada a PetStore y devuelve el resultado al autor de la llamada. La integración también esHTTP
. -
GET /pets/{petId}
: para obtener acceso de lectura a una mascota identificada por un valorpetId
tal como se especifica en una ruta variable de la URL de solicitud de entrada. Este método también tiene el tipo de integraciónHTTP
. El backend devuelve la mascota especificada que se encuentra en PetStore. La URL del punto de enlace HTTP del backend eshttp://petstore-demo-endpoint.execute-api.com/petstore/pets/
, donden
n
es un entero como identificador de la mascota consultada.
La API admite el acceso a CORS a través de los métodos OPTIONS
del tipo de integración MOCK
. API Gateway devuelve los encabezados solicitados que admiten el acceso a CORS.
El siguiente procedimiento le guiará por los pasos para crear y probar una API a partir de un ejemplo mediante la consola de API Gateway.
Para importar, desarrollar y probar la API de ejemplo
Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway
. -
Realice una de las siguientes acciones siguientes:
-
Para crear la primera API, para API de REST, elija Crear.
-
Si ha creado una API antes, elija Crear API y, a continuación, elija Crear para API de REST.
-
-
En Crear API de REST, elija API de ejemplo y, a continuación, elija Crear API para crear la API de ejemplo.
Puede desplazarse por la definición de OpenAPI para obtener información detallada sobre esta API de ejemplo antes de elegir Crear API.
-
En el panel de navegación principal, elija Recursos. La API recién creada se muestra de la siguiente forma:
El panel Resources (Recursos) muestra la estructura de la API creada como un árbol de nodos. Los métodos de API definidos en cada recurso son los extremos del árbol. Cuando se selecciona un recurso, todos sus métodos se muestran en el panel Métodos situado a la derecha. Junto a cada método se muestran el tipo de método, el tipo de integración, el tipo de autorización y el requisito de clave de API.
-
Para ver los detalles de un método, para modificar su configuración o para probar la invocación del método, elija el nombre del método en la lista de métodos o en el árbol de recursos. A continuación, elegimos el
POST /pets
método como ejemplo:El panel de Ejecución de método resultante presenta una vista lógica de la estructura y el comportamiento del método elegido (
POST /pets
).La Solicitud de método y la Respuesta de método representan la interfaz de la API con el frontend, y la Solicitud de integración y la Respuesta de integración representan la interfaz de la API con el backend.
El cliente utiliza la API para obtener acceso a una característica del backend a través de Solicitud de método. API Gateway traduce la solicitud del cliente, si fuera necesario, a un formato aceptable por el backend en Solicitud de integración antes de reenviar la solicitud entrante al backend. La solicitud transformada se conoce como la solicitud de integración. Del mismo modo, el backend devuelve la respuesta a API Gateway en Respuesta de integración. A continuación, API Gateway la dirige a Method Response (Respuesta de método) antes de enviarla al cliente. De nuevo, si fuera necesario, API Gateway puede asignar los datos de la respuesta del backend a un formulario previsto por el cliente.
En el caso del método
POST
de recurso de API, la carga de la solicitud del método puede transmitirse a través de la solicitud de integración sin modificación si la carga de la solicitud de método está en el mismo formato que la carga de la solicitud de integración.La solicitud del método
GET /
usa el tipo de integraciónMOCK
y no está vinculada a ningún punto de enlace de backend real. La Respuesta de integración correspondiente está configurada para devolver una página HTML estática. Cuando se llama al método, API Gateway simplemente acepta la solicitud e inmediatamente devuelve la respuesta a la integración configurada al cliente a través de Respuesta de método. Puede utilizar la integración simulada para probar una API sin requerir un punto de enlace del backend. También puede utilizarla para servir una respuesta local generada partir de una plantilla de asignación de cuerpo de respuesta.Como desarrollador de la API, puede controlar los comportamientos de las interacciones del frontend de la API mediante la configuración de la solicitud de método y una respuesta de método. Puede controlar los comportamientos de las interacciones del backend de la API mediante la configuración de la solicitud de integración y la respuesta de integración. Estos comportamientos implican asignaciones de datos entre un método y su integración correspondiente. Por el momento, nos centraremos en probar la API para proporcionar una experiencia de usuario completa.
-
Seleccione la pestaña Pruebas. Puede que tenga que elegir el botón de flecha hacia la derecha para mostrar la pestaña.
-
Por ejemplo, para probar el método
POST /pets
, escriba la siguiente carga{"type": "dog","price": 249.99}
en el Cuerpo de la solicitud antes de elegir el botón Pruebas.La entrada especifica los atributos de la mascota que deseamos añadir a la lista de mascotas en el sitio web PetStore.
-
El resultado es el siguiente:
La entrada Registros de la salida muestra los cambios de estado de la solicitud del método a la solicitud de integración y de la respuesta de integración a la respuesta del método. Esto puede resultar útil para la resolución de errores de asignación que impidan que la solicitud se realice correctamente. En este ejemplo, la asignación no se aplica: la carga de la solicitud de método se transfiere a través de la solicitud integración al backend y, de forma parecida, la respuesta del backend se transfiere a través de la respuesta de integración al método de respuesta.
Para probar la API con un cliente distinto de la característica test-invoke-request de API Gateway, primero debe implementar la API en una etapa.
-
Elija Implementar API para implementar la API de ejemplo.
-
En Etapa, seleccione Nueva etapa y, a continuación, ingrese
test
. (Opcional) En Description (Descripción), introduzca una descripción.
-
Elija Implementar.
-
En el panel Etapas resultante, en Detalles de la etapa, la URL de invocación muestra la dirección URL para invocar la solicitud del método
GET /
de la API. -
Elija el icono de copiar para copiar la URL de invocación de la API y, a continuación, ingrese la URL de invocación de la API en un navegador web. Una respuesta correcta devuelve el resultado, generado a partir de la plantilla de asignación de la respuesta de integración.
-
En el panel de navegación Stages (Etapas), expanda la etapa test (prueba), seleccione GET en
/pets/{petId}
y, a continuación, copie el valor Invoke URL (URL de invocación) dehttps://
.api-id
.execute-api.region
.amazonaws.com/test/pets/{petId}{petId}
hace referencia a una variable de ruta.Pegue el valor de Invoke URL (URL de invocación) (obtenido en el paso anterior) en la barra de direcciones de un navegador, sustituyendo
{petId}
por, por ejemplo,1
y, a continuación, pulse Intro para enviar la solicitud. Debería devolverse una respuesta 200 OK con la siguiente carga JSON:{ "id": 1, "type": "dog", "price": 249.99 }
La invocación del método de la API tal como se muestra es posible porque su tipo Authorization (Autorización) está establecido en
NONE
. Si se ha utilizado la autorización deAWS_IAM
, firmaría la solicitud con los protocolos Signature Version 4 (SigV4). Para ver un ejemplo de una solicitud de este tipo, consulte Tutorial: Creación de una API de REST con integración no de proxy HTTP.