Ir para o conteúdo do rodapé
AJUDA DO NODE

LoopBack em Node.js (Como funciona para desenvolvedores)

A integração perfeita do IronPDF, uma biblioteca para criação programática de documentos PDF, com o LoopBack, um framework Node.js para construção de APIs, oferece uma solução completa para geração dinâmica de PDFs em aplicações com o framework LoopBack. Com recursos como criação de modelos, validação de fontes de dados, métodos remotos e controle de acesso, o framework LoopBack facilita o desenvolvimento de APIs/web, e o IronPDF o aprimora com capacidades mais sofisticadas de produção de PDFs.

Com essa integração, os desenvolvedores podem criar PDFs instantaneamente, extraindo dados de múltiplas fontes, incluindo APIs externas e bancos de dados. Isso possibilita a criação de registros personalizados ou objetos de domínio de negócios para atender aos requisitos do projeto, como faturas, certificados, relatórios e muito mais. Como o LoopBack é assíncrono, ele complementa os recursos do IronPDF para lidar bem com as tarefas de geração de PDFs sem interferir no loop de eventos, garantindo capacidade de resposta e desempenho ideal.

Para começar a trabalhar com LoopBack e IronPDF, crie um novo projeto usando a ferramenta de linha de comando do LoopBack e instale o IronPDF como uma dependência usando o npm. Utilizar o middleware e os recursos de método remoto do LoopBack para criar PDFs instantaneamente em resposta às solicitações do cliente simplifica a integração. Considerando todos os aspectos, essa integração oferece aos desenvolvedores a capacidade de lidar com vários requisitos de geração de documentos em aplicativos LoopBack de forma eficiente.

O que é LoopBack Node.js?

Um poderoso framework Node.js chamado LoopBack foi criado para facilitar o processo de criação de APIs e sua conexão com diferentes fontes de dados. Com o LoopBack, um produto da StrongLoop, os desenvolvedores podem facilmente criar aplicativos escaláveis ​​e adaptáveis. Fundamentalmente, o LoopBack é construído sobre um framework express e baseado em uma metodologia de desenvolvimento orientada a modelos, que permite aos programadores criar modelos de dados que representam o domínio de seus aplicativos. Bancos de dados relacionais como MySQL e PostgreSQL, bancos de dados NoSQL como MongoDB, bem como APIs REST externas e serviços SOAP, podem ser facilmente integrados a esses modelos.

O LoopBack é único porque simplifica o processo de desenvolvimento de APIs, gerando automaticamente endpoints RESTful com base em modelos fornecidos. Além disso, o LoopBack oferece suporte integrado para validação, permissões e autenticação, permitindo que os programadores protejam suas APIs e garantam a integridade dos dados. Como a arquitetura de middleware do LoopBack é baseada em Express.js, ela é extensível e flexível, permitindo que os desenvolvedores trabalhem com middleware preexistente ou criem middleware personalizado para atender a necessidades específicas.

Quer esteja a criar uma API REST simples ou uma arquitetura de microsserviços sofisticada, o LoopBack tem as funcionalidades e as ferramentas necessárias para acelerar o desenvolvimento e produzir soluções fiáveis ​​e escaláveis. Graças à sua extensa documentação e comunidade ativa, os desenvolvedores frequentemente o escolhem ao criar aplicativos online e móveis de ponta.

LoopBack node js (Como funciona para desenvolvedores): Figura 1 - LoopBack

Funcionalidades do LoopBack

  • Arquitetura Orientada a Modelos: Ao permitir que os desenvolvedores definam modelos de dados por meio de uma abordagem baseada em esquemas, o LoopBack oferece suporte ao desenvolvimento orientado a modelos. Diversas fontes de dados, incluindo bancos de dados, APIs REST e serviços SOAP, podem ser representadas usando modelos.
  • Agnosticismo em relação à fonte de dados: Bancos de dados relacionais (MySQL, PostgreSQL), bancos de dados NoSQL (MongoDB), APIs REST externas e serviços SOAP são apenas algumas das muitas fontes de dados que o LoopBack suporta.
  • Geração automatizada de APIs REST: O LoopBack usa modelos predefinidos para criar automaticamente endpoints de API RESTful no API Explorer, reduzindo o código repetitivo e acelerando o desenvolvimento.
  • Suporte integrado para autenticação e autorização: O LoopBack oferece suporte integrado para esses recursos, permitindo que os desenvolvedores incorporem controle de acesso baseado em funções (RBAC), autenticação de usuário e outras medidas de segurança em suas APIs.
  • Middleware e métodos remotos: Para alterar o comportamento dos endpoints da API, os desenvolvedores podem fornecer middleware e métodos remotos usando o LoopBack. Enquanto os métodos remotos oferecem funcionalidades personalizadas que podem ser chamadas remotamente via HTTP, as funções de middleware podem interceptar e modificar solicitações e respostas.
  • Interface de linha de comando (CLI) para LoopBack: O LoopBack inclui uma ferramenta CLI robusta que facilita atividades típicas como a criação de modelos e controladores, a construção de novos projetos e a execução de migrações.
  • Integração com componentes LoopBack: O LoopBack facilita o uso de componentes, que são módulos reutilizáveis ​​que fornecem recursos de entrega de e-mail, armazenamento de arquivos e autenticação. Isso evita que os desenvolvedores tenham que começar do zero ao adicionar novos recursos aos seus aplicativos.
  • LoopBack Explorer: Os desenvolvedores podem examinar e testar endpoints de API interativamente com a ferramenta integrada de exploração de API do LoopBack. Isso facilita a resolução de problemas e a compreensão das possibilidades da API.

Criar e configurar o LoopBack em Node.js (JS)

Você pode usar os seguintes procedimentos para configurar e construir uma aplicação LoopBack em Node.js:

Instale o LoopBack CLI

A instalação da Interface de Linha de Comando (CLI) do LoopBack, que oferece recursos para criar e administrar aplicações LoopBack, é o primeiro passo. Use o npm para instalá-la globalmente:

npm install -g @loopback/cli
npm install -g @loopback/cli
SHELL

Criar um novo aplicativo LoopBack

Para criar a estrutura básica de um novo aplicativo LoopBack, use a CLI. Abra o diretório onde deseja criar sua aplicação e execute-a lá:

lb4 app
lb4 app
SHELL

Para fornecer informações sobre seu aplicativo, como nome, diretório e funcionalidades que deseja habilitar, basta seguir as instruções.

Você será solicitado a fornecer as seguintes informações:

  1. Nome do projeto: Insira o nome do seu aplicativo, por exemplo, my-loopback-app .
  2. Descrição do projeto: Descreva opcionalmente sua aplicação.
  3. Diretório raiz do projeto: Aceite o padrão ou especifique um diretório diferente.
  4. Nome da classe do aplicativo: Aceitar o aplicativo padrão.
  5. Ativar Prettier: Escolha se deseja ativar o Prettier para formatação de código.
  6. Habilitar TSLINT: Escolha se deseja habilitar o TSLint para verificação de código.
  7. Ativar Mocha: Escolha se deseja ativar o Mocha para executar os testes.

A interface de linha de comando (CLI) irá gerar a estrutura do projeto e instalar as dependências necessárias.

Explore a estrutura do projeto

O diretório do seu projeto terá a seguinte estrutura:

my-loopback-app/
├── src/
│   ├── controllers/
│   ├── models/
│   ├── repositories/
│   ├── index.ts
│   ├── application.ts
│   └── ...
├── package.json
├── tsconfig.json
└── ...

Definir modelos

Para especificar a estrutura dos seus dados, você pode desenvolver modelos manualmente ou usar a CLI do LoopBack. Os modelos, que podem ser suportados por uma variedade de estruturas e fontes de dados, representam elementos do seu programa. Por exemplo, execute o seguinte comando para gerar um novo modelo chamado Produto:

lb4 model
lb4 model
SHELL

Para especificar os atributos e conexões do seu modelo, siga as instruções.

Criar um controlador

Para lidar com solicitações de criação de documentos PDF, crie um novo controlador. Para criar um novo controlador, use o seguinte comando na CLI do LoopBack:

lb4 controller
lb4 controller
SHELL

Para definir o nome e o modelo relacionado do controlador, basta seguir as instruções. Digamos que queremos associar o nome da propriedade do controlador ao modelo Report e chamá-lo de ReportController.

Definir fontes de dados

Determine com quais fontes de dados seus modelos irão se comunicar. Muitos bancos de dados, como MySQL, PostgreSQL, MongoDB e outros, são suportados pelo LoopBack. Para configurar suas fontes de dados, atualize o arquivo datasources.json ou use a CLI do LoopBack.

Explore LoopBack

Utilize a ferramenta de exploração de API integrada, disponível em http://localhost:3000/explorer, para investigar os recursos do LoopBack. Você pode explorar e testar seus endpoints de API aqui mesmo.

Código de exemplo do Controlador de Ping

import {inject} from '@loopback/core';
import {
  Request,
  RestBindings,
  get,
  response,
  ResponseObject,
} from '@loopback/rest';

/**
 * OpenAPI response for ping()
 */
const PING_RESPONSE: ResponseObject = {
  description: 'Ping Response',
  content: {
    'application/json': {
      schema: {
        type: 'object',
        title: 'PingResponse',
        properties: {
          greeting: {type: 'string'},
          date: {type: 'string'},
          url: {type: 'string'},
          headers: {
            type: 'object',
            properties: {
              'Content-Type': {type: 'string'},
            },
            additionalProperties: true,
          },
        },
      },
    },
  },
};

/**
 * A simple controller to bounce back http requests
 */
export class PingController {
  constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}

  // Map to `GET /ping`
  @get('/ping')
  @response(200, PING_RESPONSE)
  ping(): object {
    // Reply with a greeting, the current time, the url, and request headers
    return {
      greeting: 'Hello from LoopBack',
      date: new Date(),
      url: this.req.url,
      headers: Object.assign({}, this.req.headers),
    };
  }
}

Resultado do código acima.

LoopBack node js (Como funciona para desenvolvedores): Figura 2 - Saída do LoopBack

Começando

Começaremos criando um aplicativo de exemplo que usa LoopBack Node.js e IronPDF para criar um documento PDF com informações geradas dinamicamente. Este é um manual passo a passo com explicações detalhadas.

O que é o IronPDF?

Uma biblioteca de aplicativos chamada IronPDF foi desenvolvida para facilitar a criação, edição e manutenção de PDFs. Com este aplicativo, os desenvolvedores podem extrair texto e imagens de documentos HTML, aplicar cabeçalhos e marcas d'água, combinar vários documentos PDF e realizar diversas outras atividades. Graças à API intuitiva e à documentação completa do IronPDF, os desenvolvedores podem criar documentos PDF de alta qualidade automaticamente e com facilidade. O IronPDF oferece todos os recursos e funcionalidades necessários para aprimorar os fluxos de trabalho de documentos e proporcionar experiências de usuário de primeira linha em diversos cenários, seja para a elaboração de faturas, relatórios ou documentação.

LoopBack node js (Como funciona para desenvolvedores): Figura 3 - IronPDF

Funcionalidades do IronPDF

A conversão de HTML para PDF é um processo simples e rápido que pode ser usado para qualquer conteúdo HTML, incluindo CSS e JavaScript.

  • Fusão de arquivos PDF: Para facilitar o gerenciamento de documentos, combine vários documentos PDF em um único arquivo PDF.
  • Extração de texto e imagem: Extrair texto e imagens de arquivos PDF para torná-los disponíveis para análise ou processamento de dados adicionais.
  • Marca d'água: Por motivos de segurança ou de identidade visual, você pode adicionar marcas d'água de texto ou imagem às páginas de PDFs.
  • Incluir cabeçalho e rodapé: Os cabeçalhos e rodapés dos documentos PDF permitem incluir uma mensagem personalizada ou números de página.

Instale o IronPDF

Para habilitar a funcionalidade IronPDF , instale os pacotes Node.js necessários usando o gerenciador de pacotes do Node.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

Integre o LoopBack com o IronPDF Node.js

Implemente a seguinte lógica no arquivo de controlador criado (report.controller.ts ou report.controller.js) para criar documentos PDF usando o IronPDF:

import {inject} from '@loopback/core';
import {Request, RestBindings, get, response} from '@loopback/rest';
const IronPdf = require('@ironsoftware/ironpdf');

// Configure IronPDF license key, if needed
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({licenseKey: ''});

/**
 * Controller handling PDF generation
 */
export class ReportController {
  constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}

  @get('/generate-pdf', {
    responses: {
      '200': {
        description: 'PDF file',
        content: {'application/pdf': {schema: {type: 'string', format: 'binary'}}},
      },
    },
  })
  async generatePdf(): Promise<Buffer> {
    // HTML content to be converted to PDF
    const htmlContent = '<html><body><h1>Hello, IronPDF!</h1></body></html>';

    // Generate PDF from HTML
    const pdf = await IronPdf.PdfDocument.fromHtml(htmlContent);

    // Get the PDF as a Buffer
    const pdfBuffer = await pdf.saveAsBuffer();

    // Return the PDF buffer to serve as a downloadable file
    return pdfBuffer;
  }
}

A criação de instâncias de relatório e a geração de PDF são gerenciadas pelo ReportController. O conteúdo HTML é convertido em um buffer PDF usando o IronPDF e retornado através do método generatePdf. Para renderizar HTML como um PDF, a função generatePdf usa o IronPDF. O controlador LoopBack lida com essa integração com facilidade. O conteúdo HTML do cliente é então recebido definindo um endpoint GET, /generate-pdf. Transformamos as informações HTML fornecidas em um PDF dentro do endpoint, utilizando a biblioteca IronPDF .

Especificamente, usamos pdf.saveAsBuffer() para produzir um buffer binário do arquivo PDF e IronPdf.PdfDocument.fromHtml(htmlContent) para construir um objeto PDF a partir de um arquivo JSON. Depois disso, o cliente recebe esse buffer de volta com o tipo MIME correto (application/pdf). Quaisquer problemas que surjam durante a criação de PDFs são detectados e registrados pelo servidor, que está escutando na porta 3000. O cliente recebe um código de status 500 como resposta. Essa configuração permite criar PDFs dinâmicos a partir de conteúdo HTML, o que é útil na criação de faturas, relatórios ou outros documentos para uma aplicação web.

LoopBack node js (Como funciona para desenvolvedores): Figura 4 - Saída em PDF

Conclusão

Por fim, a integração do IronPDF com o LoopBack 4 oferece uma combinação poderosa para o desenvolvimento de aplicações online. Com o LoopBack 4, os desenvolvedores podem criar APIs RESTful facilmente com uma estrutura robusta que os libera para se concentrarem na lógica de negócios em vez de código repetitivo. No entanto, o IronPDF possui recursos de geração de PDF eficientes que permitem criar documentos PDF dinâmicos a partir de texto HTML.

Além disso, o processo de desenvolvimento é simplificado pela flexibilidade e facilidade de uso tanto do LoopBack 4 quanto do IronPDF, permitindo que os desenvolvedores produzam aplicativos de alta qualidade rapidamente. Como o LoopBack 4 gerencia os controles de acesso ao backend da API e o IronPDF cuida da criação de PDFs, os desenvolvedores podem se concentrar em atender às necessidades de negócios e proporcionar ótimas experiências ao usuário.

Podemos garantir soluções de software de alta qualidade e ricas em recursos para clientes e usuários finais, integrando o IronPDF e outras oito bibliotecas à sua pilha de desenvolvimento. Além disso, essa base sólida otimizará processos, sistemas de back-end e iniciativas. Com preços a partir de $799 cada, essas tecnologias são uma boa opção para projetos de desenvolvimento de software contemporâneos devido à sua documentação abrangente, comunidade de desenvolvedores online ativa e atualizações frequentes.

Darrius Serrant
Engenheiro de Software Full Stack (WebOps)

Darrius Serrant é bacharel em Ciência da Computação pela Universidade de Miami e trabalha como Engenheiro de Marketing WebOps Full Stack na Iron Software. Atraído por programação desde jovem, ele via a computação como algo misterioso e acessível ao mesmo tempo, tornando-a o meio ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim