Uma ferramenta para buscar dados da API do Trello e armazená-los localmente como arquivos JSON estáticos .
Com Tresor você pode usar o Trello como uma interface de usuário redacional e sistema de gerenciamento de conteúdo. Ele transformará uma lista do Trello em um conjunto de arquivos JSON estáticos prontos para serem servidos como API para um site estático.
Esta é uma ferramenta para construir seu próximo projeto JAMstack, permitindo que sua base de código seja totalmente estática e sem servidor , mas também tem as vantagens de um sistema de gerenciamento de conteúdo, pois seu site será atualizado automaticamente quando o conteúdo for alterado. Uma base de código de arquivos estáticos pode ser totalmente hospedada em uma CDN, reduzindo custos de infraestrutura e aumentando o desempenho e a disponibilidade.
Trello oferece uma UI muito simples e uma API bem desenhada, com todos os recursos necessários para gerenciar o conteúdo de um pequeno site estático, um blog ou um aplicativo de página única:
Tresor lê a API do Trello e salva os resultados localmente como arquivos JSON estáticos, em uma estrutura de pastas que permite consumir os dados como endpoints da API HTTP. Os arquivos estáticos podem ser copiados na pasta de construção do cliente ou hospedados em outro lugar (CDNs, Github Pages, Netlify, ...), para que o cliente possa consumir os dados de forma RESTful.
Configurando a Entrega Contínua, é possível configurar um Webhook para acionar uma nova construção quando o conteúdo servido pela sua API for alterado.
(Pule isso usando npx)
Requisitos:
Correr:
npm install tresor
Requisitos:
{"name":"Public","id":"5b193b1a8a23ebb893ab7a02"}
Você pode passar a API Key, o API Token, o ID da lista e qualquer outra opção como:
config.json
Execute o seguinte comando para baixar os arquivos JSON :
tresor
Passando as opções de configuração como variáveis de ambiente:
API__KEY=asenoiuwqeWNEUfnewoeFNWQetr3295023rer API__TOKEN=ASnqoiwqenmNEWOIWNrffnklef3io2r032rnewfoid3T439543 API__LIST=124f9hue2983232rj32052s tresor
ou como argumentos de linha de comando:
tresor --api.key=asenoiuwqeWNEUfnewoeFNWQetr3295023rer --api.token=ASnqoiwqenmNEWOIWNrffnklef3io2r032rnewfoid3T439543 --api.list=124f9hue2983232rj32052s
As opções que você pode adicionar ao arquivo config.json
ou passar por meio de variáveis de linha de comando/ambiente são:
Nome | Descrição | Padrão |
---|---|---|
api.url | O URL base da API | "https://api.trello.com/1/" |
API.key | A chave API ( obrigatória ) | |
API.token | O token da API ( obrigatório ) | |
lista de APIs | Os IDs (como array) das listas do Trello a serem observadas ( obrigatório ) | |
destino.root | A pasta onde todos os arquivos JSON são salvos | "static/" |
destino.tudo | O nome do arquivo JSON contendo todas as entradas | "all.json" |
destino.tags | O nome do arquivo JSON contendo todas as tags | "tags.json" |
destino.post | O nome da pasta onde todas as postagens individuais são salvas | "post" |
destino.tag | O nome da pasta onde todas as tags individuais são salvas | "tag" |
dest.images | O nome da pasta onde todas as imagens serão armazenadas | false (não baixe imagens) |
campos.campos | Os campos de postagem a serem exibidos | ["id", "name", "dateLastActivity", "desc", "idList", "labels"] |
campos.membros | Exibir ou não informações do usuário (verdadeiro ou falso) | true |
campos.member_fields | Os campos do usuário a serem exibidos | ["fullName", "bio"] |
campos.attachments | Exibir ou não informações dos anexos (verdadeiro ou falso) | true |
campos.attachment_fields | Os campos de anexo a serem exibidos | ["previews", "url"] |
paginação.entriesPerPage | O número de entradas em um único JSON | 20 |
O arquivo config.json
padrão se parece com o seguinte:
{
"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 obter mais informações sobre os campos que você pode selecionar, consulte o cartão, anexo e documentação do usuário.
Este módulo é adequado para ser usado com npx
, para que você não precise instalar o módulo e adicioná-lo às dependências do seu pacote. Basta adicionar npx tresor
ao seu gancho prebuild
no package.json
do seu módulo:
{
[ ... ]
"scripts" : {
"prebuild" : " npx tresor " ,
[ ... ]
}
}
Feito!
Executar tresor --help
imprimirá o seguinte 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