hefestoapicontainer

Validaciones

Hefesto usa json-schema para validar el body de la request a cualquier endpoint, o la response de cualquier conexión http que realices. En caso de que la validación no falle, se eleva una excepción y se interrumpe el flujo del endpoint.

Validación del body en la request a un endpoint

Mediante la directiva LoadAndValidateModel, puedes validar cualquier objeto, para ello debes usar los parámetros obligatorios:

    post /user:
        LoadUser:
            directive: LoadAndValidateModel
            source: $.message.bodyAsArray
            target: user
        Connect:
            directive: DatabaseConnect
        SaveUser:
            directive: SaveUser
            user: $.memory.user

En este ejemplo, existe en el directorio Maps, un fichero llamado user.json, que contiene el json-schema de lo que consideremos un usuario válido.

Esto nos permite definir un endpoint, que recibe un JSON con un usuario, y lo almacena en base de datos.

La primera directiva LoadAndValidateModel, es la que realiza la validación, el source es el body recibido en la request, que se lee del message, y el target indica que se debe usar el user.json de Maps que contiene el json-schema. También indica, que en caso de que la validación sea correcta, se almacenará en memory el objeto recibido, con clave user.

En caso de que la validación no sea correcta, se elevaría una excepción que interrumpiría el flujo del endpoint, con un código de error 400.

Las otras dos directivas hacen el almacenamiento en base de datos, en la directiva SaveUser, se puede comprobar cómo se utiliza el objeto user almacenado en memory por LoadAndValidateModel.

Validación del body de la response en conexiones http

Puedes hacer validaciones del body de la response de las conexiones Http, para ello debes entender antes las validaciones del body en la request a un endpoint, explicadas en la sección anterior, y luego leer la sección Pull de llamadas http y proxies.

Ir a la home