Validación de API JSON en nodejs

La creación de API REST conlleva muchos desafíos y uno de ellos es asegurarse de que la carga útil entrante del cliente sea válida y esté en el formato adecuado antes de enviarla al procesamiento adecuado o realizar alguna operación de alto costo, como la operación SQL o la operación de archivo. La validación de la API JSON en nodejs es un trabajo bastante elevado porque esperamos diferentes tipos de carga útil y datos en las API.

Ver en NPM Ver en Github

Estaba buscando algo que hiciera más que la prueba de cordura, es decir, el tipo de correo electrónico o cadenas vacías, etc. Quería algo que validara la estructura de la carga útil JSON con la que estoy esperando para la API.

Desafortunadamente, no he encontrado nada que se adapte a mis necesidades, así que trabajé en uno. Se llama “validador de carga útil” y hace la validación de su estructura JSON para API.

Validación de la API JSON en nodejs usando payload-validator

Para instalar el validador de carga útil, ejecute el siguiente comando.

npm install –save payload-validator

–Save escribirá el nombre del paquete en su archivo JSON.

Cómo usar el validador de carga útil

Payload-validator tiene solo una función llamada “validador” y acepta el siguiente parámetro.

  • Carga útil entrante
  • Carga útil esperada
  • Matriz de elementos obligatorios
  • Bandera de valor en blanco permitido

Para usarlo en su código, requiera el validador de carga útil y llame a la función del validador con el parámetro anterior. A continuación se muestra un ejemplo de muestra.

Requerir el módulo

var payloadChecker = require ( ‘validador de carga útil’ ) ;

Llamar a la función de validador

var result = payloadChecker. validador ( entrante carga útil , esperada carga útil , [ “clave1” , “clave2” ] , falso ) ;
// Busque la clave result.success que será verdadera o falsa dependiendo de la validación.
// si es falso, busque la clave result.response.errorMessage para saber más sobre el error del validador.

Proyecto de ejemplo

Desarrollemos un proyecto simple que se ocupa de la carga útil JSON. Creemos el paquete de muestra.json usando el comando npm init .

package.json
{
  “name” : “payload-checker” ,
  “version” : “1.0.0” ,
  “description” : “” ,
  “main” : “app.js” ,
  “scripts” : {
    “test” : “echo” Error : no se especificó la prueba “&& exit 1”
  } ,
  “autor” : “” ,
  “licencia” : “ISC”
}

Instalemos Express y payload-validator en nuestro proyecto. Ejecute el siguiente comando.

npm install –save express payload-validator body-parser

Creemos nuestro archivo de aplicación de muestra con el código del servidor.

app.js
var express = require ( ‘express’ ) ;
var bodyParser = require ( ‘body-parser’ ) ;
var payloadChecker = require ( ‘validador de carga útil’ ) ;
var app = express ( ) ;
var router = express. Enrutador ( ) ;
var esperabaPayload = {
    “nombre” : “” ,
    “mensaje” : “”
} ;


aplicación.
use ( bodyParser. json ( ) ) ;


enrutador.
ruta ( ‘/’ )

    .
get ( function ( req , res ) {

        res.
json ( { “message” : “GET no admitido” } ) ;
    } )

    .
post ( función ( req , res ) {
        // verificación cruzada req.body.message payload
        if ( req. cuerpo ) {
            var result = payloadChecker. validador ( req. cuerpo , carga esperada , [ “nombre” , “mensaje” ] , falso ) ;
            if ( resultado. éxito ) {

                res.
json ( { “mensaje” : “La carga útil es válida” } ) ;
            } else {

                res.
json ( {“mensaje” : resultado. respuesta . errorMessage } ) ;
            }
        } else {

            res.
json ( { “mensaje” : “paylod incorrecto” } ) ;
        }
    } ) ;


aplicación.
use ( ‘/ api’ , enrutador ) ;

aplicación.
listen ( 3000 , function ( ) {

    console.
log ( “La aplicación se está ejecutando en el puerto 3000” ) ;
} ) ;

Ejecutemos la aplicación y verifiquemos el módulo. Ejecute la aplicación usando el siguiente comando.

nodo app.js

Para acceder a la API POST, abra su simulador de API (recomendamos la extensión POSTMAN chrome) y presione una solicitud POST a localhost: 3000 / api .

Pasando datos en blanco

En este caso, estamos pasando un valor en blanco a los campos obligatorios. Aunque el indicador en blanco se establece como falso, lo comprobará porque es un campo obligatorio.

Pasando datos inválidos

En este caso, estamos pasando un número en lugar de una cadena. mostrará el siguiente mensaje.

Pasando la carga útil correcta

Contribución

Si hay algún error o solicitud de función, cree un problema en el repositorio de github. Eres más que bienvenido a bifurcar y agregar más funciones.

Conclusión

El validador de carga útil puede ayudarlo a no realizar validaciones repetitivas cada vez. También puede asegurarse de que su aplicación obtenga datos correctos del cliente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.