props
das Sections.
Neste tutorial, você aprenderá como buscar dados de uma API externa e injetá-los
em uma Section usando Loaders.
O que vamos construir
O exemplo que usaremos é simples, mas tem complexidades comuns à outros casos:- Fazer fetch de fatos sobre cachorros usando a Dog API permitindo ao usuário configurar quantos fatos serão retornados no Admin da deco.cx.
- Apresentar esses fatos em uma Section.


1. Criando a Section
Primeiro, vamos criar uma Section que renderizará os dados buscados da API. Crie a seçãoDogFacts.tsx
na pasta sections/ do seu projeto.
Se executarmos um http request para a API da Dog Fact veremos que ele retorna um
JSON no seguinte formato,
Abra no seu browser: esta URL com parâmetros para a API
DoctFact
que contém apenas uma propriedade
chamada fact
que é a string
representada pela mensagem.
Vamos ver isso em ação criando uma nova Section:
Cole o seguinte código:
Nesse momento podemos rodar o deno task start
e verificar no nosso admin que
esse componente já consegue ser utilizado com dados estáticos, oque não faz
muito sentido para nosso caso de uso.
2. Criando o Loader e testando a Section
Agora vamos criar um Loader que buscará os dados da Dog Fact API e os passará para a Section. Os Loaders permitem que você defina como os dados são buscados e transformados antes de serem passados para uma Section. Eles são funções regulares de Typescript que podem usar funções async comofetch
. Os Loaders podem ser
“plugados” em uma Section via uma das props
da Section, e isso acontece com
base no tipo de retorno do Loader (o tipo de retorno do Loader é o tipo de
entrada da Section).
- Defina qual será as
Props
de input do seu loader. - Exporte uma função chamada
loader
dentro do mesmo arquivo da sua section.
Observação: O tipo SectionProps
é um tipo auxiliar usado para inferir o tipo
de retorno do loader.
3. Testando a Section
- Execute o servidor localmente com
DECO_ENV_NAME={environment_name} deno task start
. - Acesse
https://deco.cx/admin
no seu site e certifique-se de que seu ambiente está selecionado no Seletor de Ambiente no canto superior direito do Admin. - Vá para
Sections
e procure por DogFacts na barra lateral esquerda. - Configure as props do Loader selecionado (
numberOfFacts
) com um número desejado (por exemplo, 4).

props
do Loader para
torná-lo mais reutilizável no Admin da deco.cx.
Leitura adicional
Os loaders são componentes poderosos para lidar com dados dinâmicos e resolvem a maior parte dos requisitos quando lidamos com dados vindos de API. A plataforma dadeco.cx
possui uma outra infinidade de casos de usos relacionados com dados
dinâmicos que podemos utilizar.