Un outil pour récupérer des données de l' API Trello et les stocker localement sous forme de fichiers JSON statiques .
Avec Tresor, vous pouvez utiliser Trello comme système d'interface utilisateur rédactionnelle et de gestion de contenu. Il transformera une liste Trello en un ensemble de fichiers JSON statiques prêts à servir d'API pour un site Web statique.
Il s'agit d'un outil pour construire votre prochain projet JAMstack, permettant à votre base de code d'être entièrement statique et sans serveur , mais présente également les avantages d'un système de gestion de contenu, car votre site sera automatiquement mis à jour lorsque le contenu change. Une base de code de fichiers statiques peut être entièrement hébergée sur un CDN, réduisant ainsi les coûts d'infrastructure et augmentant les performances et la disponibilité.
Trello propose une interface utilisateur très simple et une API bien conçue, avec toutes les fonctionnalités nécessaires pour gérer le contenu d'un petit site Web statique, d'un blog ou d'une application monopage :
Tresor lit l'API Trello et enregistre les résultats localement sous forme de fichiers JSON statiques, dans une structure de dossiers qui permet de consommer les données en tant que points de terminaison de l'API HTTP. Les fichiers statiques peuvent être soit copiés dans le dossier de build du client, soit hébergés ailleurs (CDN, pages Github, Netlify, ...), afin que le client puisse ensuite consommer les données de manière RESTful.
En configurant la livraison continue, il est alors possible de configurer un Webhook pour déclencher une nouvelle build lorsque le contenu servi depuis votre API est modifié.
(Ignorez ceci en utilisant npx)
Exigences:
Courir:
npm install tresorExigences:
{"name":"Public","id":"5b193b1a8a23ebb893ab7a02"}Vous pouvez transmettre la clé API, le jeton API, l'ID de liste et toute autre option comme :
config.jsonExécutez la commande suivante pour télécharger les fichiers JSON :
tresorPasser les options de configuration en tant que variables d'environnement :
API__KEY=asenoiuwqeWNEUfnewoeFNWQetr3295023rer API__TOKEN=ASnqoiwqenmNEWOIWNrffnklef3io2r032rnewfoid3T439543 API__LIST=124f9hue2983232rj32052s tresorou comme arguments de ligne de commande :
tresor --api.key=asenoiuwqeWNEUfnewoeFNWQetr3295023rer --api.token=ASnqoiwqenmNEWOIWNrffnklef3io2r032rnewfoid3T439543 --api.list=124f9hue2983232rj32052s Les options que vous pouvez ajouter au fichier config.json ou transmettre via des variables de ligne de commande/d'environnement sont :
| Nom | Description | Défaut |
|---|---|---|
| api.url | L'URL de base de l'API | "https://api.trello.com/1/" |
| api.key | La clé API ( obligatoire ) | |
| api.jeton | Le jeton API ( obligatoire ) | |
| api.list | Les ID (sous forme de tableau) des listes trello à surveiller ( obligatoire ) | |
| dest.root | Le dossier où tous les fichiers JSON sont enregistrés | "static/" |
| dest.all | Le nom de fichier du JSON contenant toutes les entrées | "all.json" |
| dest.tags | Le nom de fichier du JSON contenant toutes les balises | "tags.json" |
| dest.post | Le nom du dossier dans lequel toutes les publications uniques sont enregistrées | "post" |
| dest.tag | Le nom du dossier dans lequel toutes les balises uniques sont enregistrées | "tag" |
| dest.images | Le nom du dossier où toutes les images seront stockées | false (ne pas télécharger d'images) |
| champs.champs | Les champs de publication à afficher | ["id", "name", "dateLastActivity", "desc", "idList", "labels"] |
| champs.membres | Afficher ou non les informations utilisateur (vrai ou faux) | true |
| champs.member_fields | Les champs utilisateur à afficher | ["fullName", "bio"] |
| champs.pièces jointes | Afficher ou non les informations des pièces jointes (vrai ou faux) | true |
| champs.attachment_fields | Les champs de pièces jointes à afficher | ["previews", "url"] |
| pagination.entriesPerPage | Le nombre d'entrées dans un seul JSON | 20 |
Le fichier config.json par défaut ressemble au suivant :
{
"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
}
}Pour obtenir plus d'informations sur les champs que vous pouvez sélectionner, veuillez vous référer à la fiche, à la pièce jointe et aux documentations utilisateur.
Ce module peut être utilisé avec npx , de sorte que vous n'avez pas besoin d'installer le module et de l'ajouter aux dépendances de votre package. Ajoutez simplement npx tresor à votre hook prebuild dans le package.json de votre module :
{
[ ... ]
"scripts" : {
"prebuild" : " npx tresor " ,
[ ... ]
}
}Fait!
L’exécution tresor --help imprimera le manuel d’utilisation suivant :
$ 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