Quiero asociar un modelo de datos a mi API de REST en Amazon API Gateway.
Resolución
Para asociar un modelo de datos a una API de REST en API Gateway, completa los pasos siguientes.
Escritura de un esquema de modelo para asociarlo con tu API de REST
Nota: Los modelos de API Gateway deben usar el borrador 4 del esquema JSON. Para obtener información sobre cómo escribir un esquema de modelo, consulta Modelos de datos para las API de REST.
Ejemplo de esquema modelo
Este modelo de ejemplo usa application/json como clave predeterminada para seleccionar la plantilla de asignación. El esquema debe cumplir las siguientes condiciones:
- Los usuarios de la API deben introducir sus valores ID de usuario y Nombre en el cuerpo de la solicitud.
- Los valores ID de usuario y Nombre deben ser valores de cadena.
- El valor Edad debe ser un valor entero igual o superior a 18.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "User",
"type": "object",
"properties": {
"UserID": {
"type": "string"
},
"Name": {
"type": "string"
},
"Age": {
"description": "Age in years",
"type": "integer",
"minimum": 18
}
},
"required": [
"UserID",
"Name"
]
}
Creación de un modelo para la API de REST
Para crear un modelo en API Gateway, consulta Configuración de la validación básica de solicitudes en API Gateway.
Asociación de tu modelo al método API
Sigue estos pasos:
- Abre la API en la consola de API Gateway.
- En el panel de navegación, selecciona Recursos.
- Selecciona el método de API al que deseas asociar el modelo.
- En el panel Ejecución de método, selecciona Solicitud de método.
- En Validador de solicitudes, selecciona ** Validar cuerpo**. A continuación, selecciona el icono de verificación para guardar la selección.
- Amplía el cuerpo de la solicitud. A continuación, selecciona Añadir modelo.
- En Tipo de contenido, introduce el tipo de contenido de tu modelo. Por ejemplo, introduce application/json.
- En Nombre del modelo, selecciona el modelo que hayas creado.
- Selecciona el icono de verificación para guardar tus selecciones.
Prueba del modelo
Sigue estos pasos:
-
En la lista Recursos de tu API, elige el método de API al que asociaste tu modelo.
-
En el panel Ejecución de métodos, elige PRUEBA.
-
En Cuerpo de la solicitud, introduce un cuerpo de la solicitud que coincida con el esquema del modelo que creaste.
**Nota:**Para probar el modelo de ejemplo application/json, usa el siguiente cuerpo de solicitud de ejemplo:
{ "UserID": "abc123", "Name": "Ana", "Age": 21}
-
Elige Prueba.
-
Si la respuesta de la prueba es correcta, el cuerpo de la solicitud que se devuelve coincidirá con el esquema del modelo.
(Opcional) Creación de una plantilla de asignación para el modelo
Puedes usar una plantilla de asignación para modificar las solicitudes que se envían al backend integrado de la API. Para crear una plantilla de asignación, sigue estos pasos:
-
En la lista Recursos de tu API, elige el método de API al que asociaste tu modelo.
-
En el panel Ejecución de método, selecciona Solicitud de integración.
-
Amplia Plantillas de asignación.
-
En Transferencia del cuerpo de la solicitud, selecciona Cuando no haya plantillas definidas (recomendado).
-
Selecciona Agregar plantilla de asignación.
-
En Tipo de contenido, introduce el tipo de contenido de tu modelo. Por ejemplo, introduce application/json.
-
Selecciona el icono de verificación para guardar tus selecciones.
-
En Generar plantilla, selecciona el modelo que hayas creado. Por ejemplo, el modelo de ejemplo application/json aparece de la siguiente manera:
#set($inputRoot = $input.path('$')) { "UserID" : "$inputRoot.UserID", "Name" : "$inputRoot.Name", "Age" : $inputRoot.Age }
-
Modifica la plantilla anterior para que contenga los valores que quieres pasar al backend integrado de tu API.
-
Selecciona Guardar.
Cómo desplegar la API de REST para confirmar los cambios
Sigue estos pasos:
- En el panel de navegación, selecciona Recursos.
- Selecciona Acciones. A continuación, selecciona Desplegar API.
- En la etapa de implementación, selecciona una etapa que ya exista o elige**[Nueva etapa]** para crear una etapa.
Importante: Si creas una nueva etapa, debes introducir un nombre para la etapa.
- Elige Desplegar para recibir la URL de invocación que usarás para realizar solicitudes en la API implementada.
- Copia la URL de invocación.
Prueba la API de REST
Envía una solicitud de prueba a la API que utilice el método y el tipo de contenido asociados a tu modelo. Si la solicitud es satisfactoria, devolverá la respuesta 200 OK. Una solicitud con error devuelve un código de estado 400.
Para enviar una solicitud de prueba, usa una herramienta de desarrollo de API o un comando curl. Para obtener más información sobre las llamadas a la API de REST en API Gateway, consulta Invocación de las API de REST en API Gateway. Para obtener más información sobre el comando curl, consulta el sitio web curl.
Ejemplo de comando curl que usa la solicitud del método HTTP POST y prueba una respuesta de 200 OK
Nota: Este comando de ejemplo envía una solicitud de prueba al modelo application/json de ejemplo. El comando devuelve una respuesta de tipo 200 OK.
curl -X POST <API URL> -H 'Content-Type: application/json' -d '{ "UserID": "abc123", "Name": "Ana", "Age": 21 }'
(Opcional) Ejemplo de comando curl que usa la solicitud del método HTTP POST y prueba un código de estado 400
Nota: El cuerpo de la solicitud de este comando de ejemplo no es válido porque no incluye el atributo UserID del modelo obligatorio. El comando devuelve un código de estado 400.
curl -X POST <API URL> -H 'Content-Type: application/json' -d '{ "Name": "Ana", "Age": 21 }'