Visão geral: Entendendo o Boilerplate

Visão geral: Entendendo o Boilerplate

Introdução

Fazendo uma breve apresentação do boilerplate, há duas pastas (/node e /graphql) e o arquivo manifest.json, que é um arquivo importante para a sua aplicação no VTEX IO, dado que será o primeiro ponto de comunicação da sua app com o VTEX IO.

Visão geral do manifest.json

No arquivo manifest.json, você encontrará o nome da app, vendor, versão e outras informações que você deve prestar atenção: builders, policies e dependencies. Neste passo inicial, temos as seguintes configurações:

  • builders: quais builders sua app precisará. Neste caso, temos até o momento apenas o builder node, com sua respectiva versão;
  • policies: se a app que está sendo implementada necessita acessar serviços externos ou pegar dados de um local específico, é necessário declará-las. Até o momento, não há nenhuma policy declarada.
  • dependencies: outras apps do VTEX IO que a sua app depende. Como mostrado abaixo, será necessário também linkar a app events-example, e esta é uma dependência que está declarada na aplicação deste curso.

Visão geral do diretório /node

Todas as pastas utilizadas durante este curso já estão no projeto inicial. A maioria dos diretórios está vazio e serão preenchidos com outros arquivos ao longo do curso.

  • /node/clients: ambos os arquivos estão praticamente em branco e são apenas placeholders para os próximos passos;

  • /node/handlers: contém um handler que será utilizado nos próximos passos;

  • /node/utils: você encontrará um arquivo que contém declarações de constantes globais (/node/constants.ts);

  • /node/index.ts: contém as declarações iniciais para as funcionalidades da app, como as declarações de serviços e de cache, que serão incrementadas durante o curso. Neste arquivo, também é possível exportar implementações de funções que são resolvers;

  • /node/service.json: Descreve a sua API REST e algumas características que impactam diretamente nos atributos de infraestrutura da sua app.

Seu arquivo service.json pode ser encontrado dentro da pasta /node e será similar a:

{
"memory": 256,
"timeout": 2,
"minReplicas": 2,
"maxReplicas": 4,
"routes": {
  "status": {
    "path": "/_v/status/:code",
    "public": true
  }
}
CampoTipoDescrição
memoryMegaBytes.O quanto de memória sua app terá alocada. Este valor será sobrescrito se o IO detectar que sua app está abusando no uso de memória
timeoutSecondsA infraestrutura do VTEX IO irá abortar a conexão se o request demorar mais do que o valor do timeout
minReplicasIntegerQuando sua app estiver rodando, este valor é a quantidade de réplicas mínimas que estarão disponíveis
maxReplicasIntegerA máxima quantidade de réplicas a estarem disponíveis
routes-Descreve as rotas REST da sua app, dentro deste objeto, você informará o nome, o caminho e se é pública ou privada

Visão geral do diretório /graphql

Neste diretório, você encontrará apenas pastas vazias e o arquivo vazio /graphql/schema.graphql. Este também será preenchido ao longo do curso.

Dependências

A app tem uma dependência, que é a app events-example. Esta aplicação, quando linkada em uma conta e workspace específicos, é responsável por prover exemplos de eventos. Durante o curso, conforme nos aproximarmos do assunto de eventos, haverá uma visão mais completa a respeito da app events-example.

Dando início ao curso

Por enquanto, clone (git clone) a app events-example deste repositório e rode vtex link na pasta onde o repositório foi clonado.

Sem a aplicação events-example, este curso não será linkado com sucesso, dado que a app events-example está listada como uma dependência.

Após rodar vtex link na app events-example, o terminal deve exibir uma rota de healthcheck, que será utilizada mais tarde. Ela é similar a imagem abaixo:

image


Ajude-nos a fazer este conteúdo melhor!

Os cursos do VTEX IO são de código aberto. Se você perceber algum problema, pode abrir um pull request!

Faça uma contribuição

ou abra uma issue