Guia da API do Conector CMS

Novo guia da API do conector CMS  

Este documento serve como um guia para estender a API do Conector CMS para suportar novos Sistemas de Gerenciamento de Conteúdo (CMS) e file tipos. Descreve o processo de criação de novos pacotes CMS, atualização da lógica de validação e mapeamento e tratamento de vários file extensões e configurações de CMS na rota `/validator` e `handle`FileFunção de processamento. O objetivo é manter uma arquitetura modular e independente de CMS, permitindo a integração perfeita de diferentes plataformas de CMS, seguindo uma abordagem estruturada para validação, processamento e mapeamento de dados.  

novo ícone Criando um pacote CMS semelhante  

Como conteúdo de migração, migração-sitecoremigração-wordpress 

Para dar suporte a um novo CMS (por exemplo, Drupal), crie um novo pacote como este:  

TypeScript

 migração-drupal/

Dentro dele, implemente a estrutura necessária:  

TypeScript

// migration-drupal/index.js  

constante validador = (dados) => {

 // Validar file formato, estrutura, campos obrigatórios  

};constante ExtrairFiles = async (fileCaminho) => {

 // Descompactar ou analisar conteúdo  

};

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

constante contentTypes = {

 // Definições de tipos de conteúdo específicos do Drupal  

};

constante referência = {

 // Referências de campos específicos do Drupal  

};

constante extrairLocais = (dados) => {

 // Retorna o array de localidades  

};

módulo.exports = {

 validador,

 ExtrairFiles,

 tipos de conteúdo,

 referência,

 extrairLocais

};

ícone conectado Onde está conectado  

Assim que seu pacote (por exemplo, migration-drupal) estiver pronto:  

1. Adicione-o ao package.json:  

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

JSON

“migração-drupal”“file:migração-drupal”

2. Atualize a lógica do seu validador:  

TypeScript

constante { validator: drupalValidator } = requerer('migração-drupal');

trocar (CMSIdentifier) ​​{

 caso 'drupal-zip':

 retornar drupalValidator({ dados });

}

3. Atualize a lógica do createMapper e adicione o caso no switch do createMapper::  

TypeScript

caso 'drupal':

 retornar aguardar createDrupalMapper(…);

✅ Resumo  

Para adicionar um novo CMS, basta:  

  • Crie um pacote semelhante ao migration-drupal. 
  • Siga a estrutura do método existente
  • Adicione-o aos blocos de seleção do validador e do mapeador.

Isso mantém a arquitetura modular e independente de CMS, todas as explicações fornecidas em  subabas. 

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

validador Rota do validador  

Esta rota é usada para validar e processar um file (local ou do AWS S3), com base em file tipo e configuração do CMS.  

✅ Funcionalidade encerradaview  

  • Aceita uma solicitação GET para /validator 
  • Determina se o file A fonte é local ou do S3.
  • Com base no file extensão:
    ○ Se XML → lê como string
    ○ Caso contrário (ex.: ZIP) → lê como buffer binário
  • Atendimento de chamadas File Processando com file dados
  • Em caso de sucesso, mapeia o processado. file usando o mapeador de criação

adicionar Onde adicionar suporte para novos File Tipos  

Neste percurso, file As extensões são determinadas usando:  

JavaScript

constante fileExt = fileNome?.dividir?.('.')?.pop() ?? ";

Então, com base em file A extensão, a lógica é tratada da seguinte forma:

JavaScript

if (fileExt === 'xml') {

 // Processar XML como string  

outro {

 // Processar como buffer (ex: compactar em zip)  

}

Se você quiser adicionar um novo file Você pode adicionar esse tipo de informação dentro desta condição: Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

JavaScript

if (fileExt === 'xml') {

 // …  

senão se (fileExt === 'suaNovaExtensão') {

 // Adicione lógica para ler e lidar com este novo file tipo  

outro {

 // Processamento padrão para binário files  

}

Você também pode precisar estender a alça.FileProcessamento para lidar com o novo file tipo.  

adicionar Onde adicionar suporte para novos tipos de CMS  

O cmsType é obtido de:  

const cmsType = config?.cmsType?.toLowerCase();

Posteriormente, essa variável é passada para:  

const data = aguardar handle File Processamento (file Ext, file Dados, tipo CMS, nome);

pontiagudo Se você quiser adicionar um novo CMS, pode estender a lógica dentro do manipulador. File Processamento ou qualquer outro local onde você lide com processamento específico do CMS.  

Atualize também:  

criarMapeador(fileCaminho, idDoProjeto, tokenDoAplicativo, afixo, configuração); Para dar suporte ao seu novo tipo de CMS, adicione lógica ao createMapper para lidar com ele adequadamente.  

✅ Resumo  

● Você pode adicionar novos file extensões modificando o fileCondição externa  Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

● Você pode adicionar novos tipos de CMS estendendo o identificador.FileProcessamento e criação do mapeador  

● O sistema já separa o tratamento de XML (string) e ZIP (buffer) — siga essa estrutura.  

validador Lidar File Processamento  

Este documento explica como integrar uma nova plataforma CMS a um sistema já existente. file Fluxo de validação e processamento usando as funções:  

● alçaFileProcessamento()  

● validador()  

ícone conectado Propósito  

O backend atualmente suporta vários tipos de CMS (como Sitecore, Contentful, WordPress, AEM). O objetivo é validar os arquivos enviados. filee transformá-los em um formato estruturado específico para cada CMS.  

O sistema identifica um CMS + file digite o par usando este formato:  

sistema extensão-de-tipo → por exemplo, sitecore-zip, contentful-json, wordpress-xml  

ícone de função Onde adicionar um novo CMS  

Passo 1: Atualize a função validadora ()  

Localizado no interior:  

JavaScript

constante validador = ({ dados, tipo, extensão }: { dados: qualquer; tipo: string; extensão: string }) => { … }

Localize a instrução switch em CMSIdentifier. Cada caso trata de um tipo de CMS e  file- combinação de extensão.  

pontiagudo Para adicionar um novo CMS, adicione um novo caso neste bloco de seleção:

Exampem:  

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

JavaScript

caso 'newcms-json': {

 retornar novoCMSValidador(dados); // Sua nova lógica de validação  }

Certificar-se:  

● O formato do CMSIdentifier corresponde ao esperado {tipo}-{extensão}  

● A função de validação (por exemplo, newCMSValidator) é importada ou definida.  

cérebro Você pode adicionar várias variações, como:  

caso 'newcms-zip':  

caso 'newcms-xml':

Etapa 2: Criar a função de validação  

No seu projeto, defina a lógica de validação para o novo CMS. Exemplo:ampem:

JavaScript

constante novoCMSValidador = (dados) => {

 // Sua lógica de validação personalizada para JSON, ZIP, etc.  

 retornar verdadeiro; // ou falso se a validação falhar  

};

corda Entrada: Isto poderia ser:  

● Um objeto JSZip (para compactação)  

● String XML bruta  

● Objeto/string JSON  

corda Saída: Booleano (verdadeiro = válido, falso = rejeitado)  

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

Passo 3: Teste com a alçaFileProcessamento()  

A função validator() é usada dentro do handle.FileProcessamento():

JavaScript

if (aguardar validador({ dados: zipBuffer, tipo: cmsType, extensão: fileExt })) {  // …  

}

Certifique-se de que seu novo validador de CMS atenda à condição, passando o seguinte parâmetro corretamente:  

● cmsType (de config.cmsType)  

● fileExt (do arquivo carregado) file)  

✅ Lista de verificação resumida  

Descrição da tarefa

Adicionar novo caso Atualizar bloco switch validator()  

Implemente a lógica. Escreva sua própria função `newCMSValidator`.  

Retornar  

verdadeiro/falso  

Garantir que o validador retorne um valor booleano.  

Use a chave correta. Siga o formato tipo-extensão (ex.: newcms-zip).  

�� Opcional: Dicas de depuração  

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

● Registre o CMSIdentifier dentro de validator() para garantir que seu caso seja alcançado.  

● Certifique-se de que a alça esteja firme.FileO processamento está passando corretamente. fileExt e cmsType.  

Adicionando suporte a mapas para um novo CMS  

Após validar e processar um fileO backend prepara os dados de mapeamento usando a função createMapper. Esta etapa transforma o conteúdo extraído em um formato padronizado que pode ser usado para gerar dados fictícios e mapeamentos de localidade no seu CMS.  

Como funciona o mapeamento (fluxograma de alto nível)  

1. ✅ File foi validado e salvo com sucesso (ZIP, XML, JSON, etc.)  

2. caminho Caminho para o processado file está determinado:  

JavaScript

constante fileCaminho = caminho.join(__dirname, '..''..''extraído_fileé, fileNome);

3. cérebro A função createMapper é invocada:  

JavaScript

criarMapeador(fileCaminho, idDoProjeto, tokenDoAplicativo, afixo, configuração);

4. lógica Essa função encaminha a lógica com base no tipo de CMS (por exemplo, Sitecore, Contentful, WordPress).

estrutura Função createMapper – Estrutura  

JavaScript

constante criarMapeador = assíncrono (

 fileCaminho,

 ID do projeto,

 token_do_aplicativo,

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

 afixo,

 configuração

) => {

 constante CMSIdentifier = config?.cmsType?.toLowerCase();

 trocar (CMSIdentifier) ​​{

 caso 'sitecore':

 retornar aguardar criarMapeadorSitecore(fileCaminho, idDoProjeto, tokenDoAplicativo, afixo, configuração);

 caso 'contente':

 retornar aguardar criarMapeadorDeConteúdo(projectId, app_token, affix, config);  caso 'wordpress':

 retornar criarMapeadorWordpress(fileCaminho, idDoProjeto, tokenDoAplicativo, afixo);  padrão:

 retornar falso;

 }

};

sistema Cada caso corresponde a um CMS e chama sua função de mapeamento.  

novo ícone Como adicionar um novo CMS  

Passo 1: Adicione um caso em createMapper  

Adicione um novo caso para o seu identificador CMS:  

JavaScript

caso 'novoscms': {

 retornar aguardar criarNovoMapaCMS(fileCaminho, idDoProjeto, tokenDoAplicativo, afixo, configuração);

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

}

Etapa 2: Criar a função de mapeamento  

Implemente uma nova função como:  

JavaScript

constante criarNovoMapaCMS = assíncrono (fileCaminho, idDoProjeto, tokenDoAplicativo, afixo, configuração) => {

 // 1. Ler e transformar file conteúdo  

 // 2. Gerar objeto de mapeamento de campos  

 // 3. Enviar para /v2/mapper/createDummyData  

 // 4. Gere o mapeamento de localidade e chame /v2/migration/localeMapper  };

Etapa 3: Faça uma chamada de API com dados fictícios  

Utilize o axios da mesma forma que na implementação existente:  

JavaScript

constante config = {

 método: 'publicar',

 comprimento máximo do corpo: Infinidade,

 url:

`${process.env.NODE_BACKEND_API}/v2/mapper/createDummyData/${projectId}`, cabeçalhos: {

 token_do_aplicativo,

 'Tipo de conteúdo''application/json'

 },

 dados: JSON.stringify(fieldMapping),

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

};

constante { dados } = aguardar axios.request(config);

if (dados?.dados?.mapeador_de_conteúdo?.comprimento) {

 excluirPastaSync(infoMap?.path);

 logger.info('Validação concluída com sucesso:', {

 status: HTTP_CODES?.OK,

 mensagem: HTTP_TEXTS?.MAPPER_SAVED,

 });

}

Etapa 4: Mapeamento de localização de gerenciamento  

Se o seu CMS suporta localização, adicione isso ou defina en-us como padrão:  

JavaScript

constante mapperConfig = {

 método: 'publicar',

 comprimento máximo do corpo: Infinidade,

 url:

`${process.env.NODE_BACKEND_API}/v2/migration/localeMapper/${projectId}`, cabeçalhos: {

 token_do_aplicativo,

 'Tipo de conteúdo''application/json'

 },

 dados: {

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

 localidade: Variedade.from(localeData) ?? []

 }

};

aguardar axios.request(mapperConfig);

Executando o API de upload Projete em qualquer sistema operacional  

As instruções a seguir irão orientá-lo na execução do API de upload pasta em qualquer sistema operacional, incluindo Windows e macOS.  

Iniciando o API de upload Projeto  

Existem dois métodos para iniciar o API de upload projeto:  

Método 1:  

 Execute o seguinte comando a partir do diretório raiz do seu projeto:  

Concha

npm run upload

Este comando iniciará diretamente o API de upload pacote.  

Método 2:  

 Navegue até o API de upload Crie o diretório manualmente e execute o servidor de desenvolvimento:  

Concha

cd API de upload

npm run start

Essa abordagem inicia o API de upload de dentro de seu próprio diretório.  

Reiniciar após o encerramento  

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

Se o projeto for encerrado inesperadamente, você poderá reiniciá-lo seguindo os mesmos passos descritos acima. Escolha o Método 1 ou o Método 2 para reiniciar o serviço.  

Se você tiver alguma dúvida, entre em contato com tso-migration@contentstack.com. 

Documentos / Recursos

Guia da API do Conector CMS CONTENTSTACK [pdf] Guia do Usuário
Guia da API do Conector CMS, Guia da API do Conector, Guia da API

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *