Este proyecto convierte una hoja de cálculo de Google Sheets en una base de datos accesible mediante una API REST.
Proporciona las siguientes funcionalidades:
- Leer todos los datos: 📝 Obtiene todo el contenido de la hoja.
- Leer una fila específica: 🔍 Busca y devuelve una fila basada en un valor clave.
- Escribir o actualizar una fila: ✏️ Inserta datos nuevos o actualiza una fila existente si la clave ya está presente. Si al insertar una fila es la última fila disponible en la hoja, se agregarán automáticamente 1000 filas más para asegurar espacio.
- Eliminar una fila: 🗑️ Borra una fila específica usando una clave.
- Control de unicidad: 🔑 Garantiza que ciertos valores sean únicos en una columna definida.
- Autenticación por token: 🔒 Requiere un token válido, almacenado en "Hoja 2", para autenticar las solicitudes.
- Google Apps Script:
- Usado para escribir el backend del proyecto.
- Permite integrar Google Sheets con un servicio web a través de una API REST.
- Google Sheets:
- Sirve como la base de datos para almacenar los datos.
- HTTP:
- Para realizar las solicitudes GET a la API generada.
El código está organizado en varias funciones para manejar diferentes acciones:
doGet
:- Punto de entrada que procesa las solicitudes entrantes y dirige la ejecución a la función correspondiente según el parámetro
action
.
- Punto de entrada que procesa las solicitudes entrantes y dirige la ejecución a la función correspondiente según el parámetro
- Funciones específicas:
readData
: 📄 Lee todos los datos de la hoja.readDataByKey
: 🔑 Busca una fila específica basada en una clave.writeOrUpdateData
: ✍️ Inserta una nueva fila o actualiza una existente. Si la hoja alcanza su límite de filas disponibles, se agregarán 1000 filas automáticamente. Controla que ciertos valores sean únicos en una columna definida.deleteDataByKey
: ❌ Elimina una fila específica basada en una clave.isValidToken
: 🔒 Valida que el token proporcionado exista en "Hoja 2".
- Gestión de errores:
- Maneja casos donde la hoja no exista, el token no sea válido o se incumplan las restricciones de unicidad.
https://script.google.com/macros/s/AKfycbxyYEV4RU_wg-4Vot9HUxubr5hyx2F_OSXOnj2Ch2YwBGJ37t8spi30zK5fbfadUA_M/exec
Descripción:
Obtiene todos los datos de la hoja llamada Hoja 1
si el token es válido.
Descripción:
Busca una fila donde la columna id
tenga el valor 3
en la hoja Hoja 1
si el token es válido.
Descripción:
- Si
id=3
ya existe, actualiza la fila correspondiente con los valores proporcionados (name=Charlie
,[email protected]
). - Si
id=3
no existe, inserta una nueva fila con esos datos. - Si la hoja alcanza el límite de filas, agrega automáticamente 1000 filas nuevas.
- Verifica que
email
sea único antes de insertarlo.
Descripción:
Elimina la fila donde la columna id
tenga el valor 3
en la hoja Hoja 1
si el token es válido.
- Los tokens permitidos deben estar almacenados en "Hoja 2".
- Puedes escribirlos en cualquier celda de esta hoja. El script buscará en todas las celdas disponibles.
- Ejemplo de contenido de "Hoja 2":
Token |
---|
token123 |
otroToken |
token456 |
- La columna a validar como única está configurada en el código.
- Puedes pasar el nombre de la columna como parámetro en el código para verificar valores únicos.
- Copia el Spreadsheet base de ejemplo.
- Guarda una copia en tu cuenta de Google Drive.
- Asegúrate de que la hoja principal tenga el nombre
Hoja 1
(o actualiza los parámetros en las solicitudes de la API si usas otro nombre). - Configura una hoja secundaria llamada
Hoja 2
para los tokens.
- En la hoja base, asegúrate de tener columnas clave como
id
,name
, yemail
para aprovechar todas las funcionalidades.
- Abre el menú
Extensiones > Apps Script
en la hoja copiada. - Pega el código proporcionado en el editor de Apps Script.
- Publica el script como una Web App:
- Haz clic en
Deploy > New deployment
. - Selecciona
Web App
. - Configura los permisos de acceso como "Cualquiera con el enlace".
- Copia la URL generada.
- Haz clic en
Usa herramientas como Postman
, cURL
, o directamente el navegador para realizar solicitudes HTTP usando la URL generada y los ejemplos proporcionados.
- Forkea este repositorio.
- Realiza mejoras, correcciones o añade funcionalidades adicionales.
- Envía un Pull Request explicando tus cambios.
Este proyecto está licenciado bajo la Licencia Creative Commons Attribution 4.0 International (CC BY 4.0).
Eres libre de:
- Compartir: copiar y redistribuir el material en cualquier medio o formato.
- Adaptar: remezclar, transformar y construir sobre el material para cualquier propósito, incluso comercialmente.
Bajo las siguientes condiciones:
- Atribución: Debes dar crédito adecuado, proporcionar un enlace a la licencia e indicar si se realizaron cambios. Puedes hacerlo de cualquier forma razonable, pero no de una manera que sugiera que tienes el apoyo del licenciante.