Descripción del proyecto
He creado una API en PHP que devuelve las facturas guardadas en la Base de datos .
Detalles técnicos
- URL: https://diaml.es/api/getdata.php
- Método: GET
- Header:
Content-Type: application/json - Autenticación: mediante tokens temporales
- Base de datos: conexión segura y transaccional con
mysql
Ejemplo de parámetros GET
https://diaml.es/api/getdata.php?empresa=TUCIF&ultimas100=S&test=T
Respuesta obtenida
[{"fechaRegistro":"2026-02-10 19:48:47","cliente":"TUCIF","numfact":"TUFACTURA","fechafact":"2025-10-29","encadenamiento":"encadenamiento"}]
Gestión de errores
La API valida el JSON recibido y devuelve mensajes claros si faltan campos o hay errores de autenticación (aunque en la versión de demostración están deshabilitados):
{"error":"Parámetro test incorrecto"}
Estructura y arquitectura
El proyecto está organizado en clases:
- Conexión: Clase general reutilizable para acceder a la base de datos.
- Autenticación: Clase independiente para validar tokens.
- JsonValidator: Validación de estructura y contenido del GET.
- Extracción de datos: Clase para consultar los datos de la BBDD y devolver la consulta en formato JSON.
Cada clase tiene su propio constructor, funciones cortas y variables descriptivas para facilitar el mantenimiento y reutilización.
Galería del Proyecto
Esta API es para mostrarla y no está conectada a ninguna base de datos ni requiere autentificación. Solo devuelve un ejemplo de json y es solo para mostrarla en esta web.
[
{
"fechaRegistro": "2026-02-10 19:48:47",
"cliente": "TUCIF",
"numfact": "TUFACTURA",
"fechafact": "2025-10-29",
"encadenamiento": "encadenamiento"
}
]
Además para evitar que devuelva errores de servidor tipo 500, se valida la estructura del GET. Si falta alguno de los campos devuelve un error como este:
{"error":"Parámetro test incorrecto"}
Y se muestra el json recibido junto con el error 400
También muestra una serie de errores si falla la autentificación, errores 401 pero como está deshabilitada no se puede ver en esta API de pruebas. He intentado ser cuidadoso en probar todos los distintos tipos de error para evitar que puedan suceder.
La gracia de este GET es que es consultable desde Excel

También es posible enviar datos de Excel a la base de datos usando una api. De esta manera evitamos perder datos de Excel si hemos guardado mal y mantenemos los datos en la base de datos y los editamos si es necesario.
Lo que he aprendido de Mysql:
Si usas parametros ? no pueden haber inyecciones SQL.
Ejemplo: en el parámetro pongo 1=1 y me devuelve toda la base de datos.
Mediante este código prevenimos las inyecciones sql:
$sql = "SELECT nombre, email FROM clientes WHERE id = ?";
$stmt = $mysqli->prepare($sql);
$id = 5;
$stmt->bind_param("i", $id);
$stmt->execute();
Proyectos php:
Proyecto de API de tipo POST con php: https://diaml.es/proyectoAPI.html
Volver al Indice: https://diaml.es