Una herramienta para recuperar datos de la API de Trello y almacenarlos localmente como archivos JSON estáticos .
Con Tresor puedes utilizar Trello como interfaz de usuario de redacción y sistema de gestión de contenidos. Transformará una lista de Trello en un conjunto de archivos JSON estáticos listos para funcionar como API para un sitio web estático.
Esta es una herramienta para construir su próximo proyecto JAMstack, permitiendo que su código base sea completamente estático y sin servidor , pero también tiene las ventajas de un sistema de administración de contenido, ya que su sitio se actualizará automáticamente cuando cambie el contenido. Una base de código de archivos estáticos se puede alojar completamente en una CDN, lo que reduce los costos de infraestructura y aumenta el rendimiento y la disponibilidad.
Trello ofrece una interfaz de usuario muy sencilla y una API bien diseñada, con todas las funciones necesarias para gestionar el contenido detrás de un pequeño sitio web estático, un blog o una aplicación de una sola página:
Tresor lee la API de Trello y guarda los resultados localmente como archivos JSON estáticos, en una estructura de carpetas que permite consumir los datos como puntos finales de la API HTTP. Los archivos estáticos se pueden copiar en la carpeta de compilación del cliente o alojarse en otro lugar (CDN, páginas de Github, Netlify, ...), para que el cliente pueda consumir los datos de forma RESTful.
Al configurar la entrega continua, es posible configurar un webhook para activar una nueva compilación cuando se cambia el contenido servido desde su API.
(Omita esto usando npx)
Requisitos:
Correr:
npm install tresor
Requisitos:
{"name":"Public","id":"5b193b1a8a23ebb893ab7a02"}
Puede pasar la clave API, el token API, el ID de lista y cualquier otra opción como:
config.json
Ejecute el siguiente comando para descargar los archivos JSON :
tresor
Pasando las opciones de configuración como variables de entorno:
API__KEY=asenoiuwqeWNEUfnewoeFNWQetr3295023rer API__TOKEN=ASnqoiwqenmNEWOIWNrffnklef3io2r032rnewfoid3T439543 API__LIST=124f9hue2983232rj32052s tresor
o como argumentos de línea de comando:
tresor --api.key=asenoiuwqeWNEUfnewoeFNWQetr3295023rer --api.token=ASnqoiwqenmNEWOIWNrffnklef3io2r032rnewfoid3T439543 --api.list=124f9hue2983232rj32052s
Las opciones que puede agregar al archivo config.json
o pasar a través de la línea de comandos/variables de entorno son:
Nombre | Descripción | Por defecto |
---|---|---|
api.url | La URL base de la API | "https://api.trello.com/1/" |
api.clave | La clave API ( obligatoria ) | |
api.token | El token API ( requerido ) | |
api.lista | Los ID (como matriz) de las listas de Trello para observar ( obligatorio ) | |
destino.root | La carpeta donde se guardan todos los archivos JSON. | "static/" |
destino.todo | El nombre de archivo del JSON que contiene todas las entradas. | "all.json" |
destino.etiquetas | El nombre de archivo del JSON que contiene todas las etiquetas. | "tags.json" |
destino.post | El nombre de la carpeta donde se guardan todas las publicaciones individuales. | "post" |
etiqueta.destino | El nombre de la carpeta donde se guardan todas las etiquetas individuales. | "tag" |
imágenes.destino | El nombre de la carpeta donde se almacenarán todas las imágenes. | false (no descargar imágenes) |
campos.campos | Los campos de publicación que se mostrarán | ["id", "name", "dateLastActivity", "desc", "idList", "labels"] |
campos.miembros | Mostrar o no información del usuario (verdadero o falso) | true |
campos.member_fields | Los campos de usuario que se mostrarán | ["fullName", "bio"] |
campos.adjuntos | Mostrar o no información de los archivos adjuntos (verdadero o falso) | true |
campos.attachment_fields | Los campos adjuntos que se mostrarán | ["previews", "url"] |
paginación.entradasporpágina | El número de entradas en un solo JSON. | 20 |
El archivo config.json
predeterminado se parece al siguiente:
{
"api" : {
"url" : " https://api.trello.com/1/ "
},
"dest" : {
"root" : " static " ,
"all" : " pages " ,
"tags" : " tags " ,
"tagList" : " tags.json " ,
"post" : " post " ,
"tag" : " tag " ,
"images" : false
},
"fields" : {
"fields" : [ " id " , " name " , " dateLastActivity " , " desc " , " idList " , " labels " ],
"members" : true ,
"member_fields" : [ " fullName " , " bio " ],
"attachments" : true ,
"attachment_fields" : [ " previews " , " url " ]
},
"pagination" : {
"entriesPerPage" : 20
}
}
Para obtener más información sobre los campos que puede seleccionar, consulte la tarjeta, el archivo adjunto y la documentación del usuario.
Este módulo es adecuado para usarse con npx
, por lo que no necesita instalar el módulo y agregarlo a las dependencias de su paquete. Simplemente agregue npx tresor
a su gancho prebuild
en el package.json
de su módulo:
{
[ ... ]
"scripts" : {
"prebuild" : " npx tresor " ,
[ ... ]
}
}
¡Hecho!
Al ejecutar tresor --help
se imprimirá el siguiente manual de uso:
$ tresor --help
A tool to fetch remote API data and store them locally as static JSON files
Usage
$ tresor
Run tresor
$ tresor --help
Print this help message
$ tresor --version
Print the current version
Examples
$ tresor --api.key=XXX --api.token=XXX --api.list=XXX
Run the script to request the remote JSON files and save
them locally.
You can alternatively pass the configuration options as
environment variables or writing them to config.json.
See the online documentation for further information