---
# System prepended metadata

title: Schemas

---

# Schema

A la hora de interactuar con una API, es muy importante que se validen los datos tanto en el lado del servidor como en el del cliente para tener controlados posibles errores y la forma en la que se interactúa con la base de datos.

Utilizamos para esto Joi, que es la herramienta más poderosa para la validación de datos en JavaScript. Este módulo permite crear esquemas de datos usando un lenguaje simple, comprensible e intuitivo.

A continuación un ejemplo de código de validación:

```typescript
import joi from 'joi';

const createSchema = joi.object({
    rut: joi.string()
        .pattern(/^\d{7,8}-[\dk]$/)
        .required(),
    name: joi.string().uuid().required(),
    paternalLastName: joi.string().uuid().required(),
    maternalLastName: joi.string().uuid().required(),
    address: joi.string().uuid().required(),
    district_id: joi.string().uuid().required(),
    email: joi.string().uuid().required(),
    phone: joi.string().uuid().required(),
    position: joi.string().uuid().required(),
});

export { createSchema };
```

Ver los siguientes documentos:

- [**Creación de servicio BackEnd**](https://hackmd.io/@mGoZaVHZQTWgwFlq-J3U0w/B1eLiECDa)<br>
- [**Routes**](https://hackmd.io/@mGoZaVHZQTWgwFlq-J3U0w/B1zN9PAPp)<br>
- [**Controllers**](https://hackmd.io/@mGoZaVHZQTWgwFlq-J3U0w/SyFI9PAvT)<br>
- [**Queries**](https://hackmd.io/@mGoZaVHZQTWgwFlq-J3U0w/B1KJswCv6)<br>