Modelos API Gateway
camilo cabrales
Posted on December 31, 2021
Los modelos en API Gateway nos sirven para validar que los datos enviados a nuestro método sean los que definimos o necesitamos para su correcto funcionamiento y así evitar que se hagan llamadas innecesarias a nuestro backend.
Esta validación la realizamos por medio de JSON Schema que nos ayuda validar archivos JSON.
Veamos cómo realizar esta validación en nuestros métodos de API Gateway.
En este ejemplo vamos a crear un API Rest para ingresar los datos de un usuario:
- Nombre
- Apellido
- Edad
- Dirección
Vamos a empezar con la creación del API Rest.
1.Buscamos el servicio API Gateway y damos click en el botón
Create API.
2.Este este caso crearemos un API del tipo API Rest. Las Api rest son utilizadas generalmente para aplicaciones web o implementaciones de microservicios.
3.Asignamos el nombre: UserApi. Al crear un api tenemos diferentes opciones como crear una nueva api (este caso) o importar el api desde otras herramientas.
4.Ya teniendo nuestra api creada el siguiente paso que debemos realizar es crear un nuevo recurso. Los recursos nos sirven para organizar de una manera adecuada nuestro api.
Asignamos el nombre a nuestro recurso
Si vamos a utilizar nuestra api desde una aplicación angular, React.js,Vue.js o desde cualquier tipo de front end debemos habilitar la casilla: Enable API Gateway CORS
5.Después de tener nuestro recurso creado debemos crear el método que va a ser utilizado para el registro de nuestros usuarios.
Para nuestro caso vamos a utilizar un método tipo POST que es utilizado para el ingreso de datos (inserciones).
Después de crear nuestro método debemos seleccionar el tipo de integración que queremos en nuestro método, vamos a seleccionar en este caso Mock, ya que nos permite imitar una llamada real. Generalmente para aplicaciones web se utiliza la integración con funciones lambda.
6.Ahora vamos a crear nuestro modelo, con el objetivo de validar los datos que llegan a nuestro método antes que se llame al backend.
En nuestro esquema colocamos los datos, el tipo del dato y cuales son obligatorios.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Validar Usuario",
"description": "Validar los datos del usuario",
"type": "object",
"properties": {
"Nombre": {
"type": "string"
},
"Apellido": {
"type": "string"
},
"Edad": {
"type": "integer"
},
"Dirección": {
"description": "Dirección de residencia del usuario",
"type": "string"
}
},
"required": [ "Nombre", "Apellido","Edad" ]
}
En el esquema definimos que vamos a recibir 4 datos:Nombre (string),Apellido (string),Edad (numérico) y Dirección (string) de los cuales hay 3 campos obligatorios que son Nombre, Apellido y Edad.
7.Teniendo nuestro modelo vamos a asignarlo a nuestro método.
añadimos nuestro modelo al metodo
8.Ahora que hemos configurado nuestro api, configurado nuestro modelo y haberlo asignado a nuestro método, debemos hacer nuestras pruebas para validar que todo este funcionando correctamente.
Realizamos la prueba sin enviar ningún parámetro. Podemos observar que la respuesta es invalid request body, debido a que no se envío ningún dato al método.
Ahora vamos a realizar una petición con la datos que requiere el modelo para pasar la validación.
{
"Nombre": "string",
"Apellido": "string",
"Edad": 100
}
Ahora que enviamos los datos de acuerdo a como están definidos en el modelo podemos ver que la respuesta es exitosa.
Como ejercicio pueden realizar una nueva petición quitando un parámetro requerido o incluyendo el campo Dirección.
Referencias
Me pueden encontrar en
Posted on December 31, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.