Pular para o conteúdo principal

Criar uma API com Node.js é um processo simples e altamente personalizável. Este guia vai ajudá-lo a construir sua primeira API do zero, incluindo o upload de arquivos para o Azure Blob Storage

Como criar uma API usando Node.js

Como criar uma API usando Node.js

Criar uma API com Node.js é um processo simples e altamente personalizável. Este guia vai ajudá-lo a construir sua primeira API do zero, incluindo o upload de arquivos para o Azure Blob Storage.

1. Configurar o ambiente

Antes de começar, certifique-se de ter o Node.js instalado em sua máquina.

  1. Crie um novo diretório para o projeto:
  2. mkdir minha-api
    cd minha-api
    npm init -y
        

    O comando npm init -y criará um arquivo package.json.

2. Instalar dependências necessárias

  1. Instale o Express:
  2. npm install express
        
  3. Instale o multer para lidar com uploads de arquivos:
  4. npm install multer
        
  5. Instale o pacote para acessar o Azure Blob Storage:
  6. npm install @azure/storage-blob
        
  7. Opcionalmente, instale o Nodemon para recarregar o servidor automaticamente:
  8. npm install -D nodemon
        

3. Criar o servidor

Crie um arquivo chamado index.js e adicione o código abaixo:


const express = require('express');
const multer = require('multer');
const { BlobServiceClient } = require('@azure/storage-blob');
const app = express();
const port = 3000;

// Middleware para parsear JSON
app.use(express.json());

// Configuração do multer para uploads
const upload = multer({ dest: 'uploads/' });

// Configuração do Azure Blob Storage
const AZURE_STORAGE_CONNECTION_STRING = 'SEU_CONNECTION_STRING_DO_AZURE';
const containerName = 'nome-do-seu-container';

const blobServiceClient = BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING);

// Rota inicial
app.get('/', (req, res) => {
    res.send('Bem-vindo à API!');
});

// Rota para upload de arquivos
app.post('/upload', upload.single('file'), async (req, res) => {
    try {
        const file = req.file;

        if (!file) {
            return res.status(400).send('Nenhum arquivo foi enviado.');
        }

        const containerClient = blobServiceClient.getContainerClient(containerName);
        const blobName = file.originalname;
        const blockBlobClient = containerClient.getBlockBlobClient(blobName);

        // Faz o upload do arquivo para o Azure Blob Storage
        await blockBlobClient.uploadFile(file.path);

        res.status(200).json({
            mensagem: 'Arquivo enviado com sucesso!',
            blobUrl: blockBlobClient.url
        });
    } catch (error) {
        console.error('Erro ao fazer upload:', error.message);
        res.status(500).send('Erro ao enviar o arquivo.');
    }
});

// Inicia o servidor
app.listen(port, () => {
    console.log(`Servidor rodando em http://localhost:${port}`);
});

  

4. Configurar scripts no package.json

No arquivo package.json, adicione os seguintes scripts:


"scripts": {
  "start": "node index.js",
  "dev": "nodemon index.js"
}

  

5. Testar a API

  1. Inicie o servidor:
  2. npm run dev
        
  3. Use uma ferramenta como Postman para testar o upload:
    • Faça uma requisição POST para http://localhost:3000/upload com o arquivo anexado no campo file.

6. Melhorias adicionais

  • Validação de tipos de arquivo e tamanhos.
  • Integração com autenticação para proteger o acesso às rotas.
  • Organização de rotas em módulos separados.

Pronto! Agora você tem uma API funcional com suporte a upload de arquivos para o Azure Blob Storage.

Como criar uma API usando Node.js

Como criar uma API usando Node.js

Criar uma API com Node.js é um processo simples e altamente personalizável. Este guia vai ajudá-lo a construir sua primeira API do zero, incluindo o upload de arquivos para o Azure Blob Storage.

1. Configurar o ambiente

Antes de começar, certifique-se de ter o Node.js instalado em sua máquina.

  1. Crie um novo diretório para o projeto:
  2. mkdir minha-api
    cd minha-api
    npm init -y
        

    O comando npm init -y criará um arquivo package.json.

2. Instalar dependências necessárias

  1. Instale o Express:
  2. npm install express
        
  3. Instale o multer para lidar com uploads de arquivos:
  4. npm install multer
        
  5. Instale o pacote para acessar o Azure Blob Storage:
  6. npm install @azure/storage-blob
        
  7. Opcionalmente, instale o Nodemon para recarregar o servidor automaticamente:
  8. npm install -D nodemon
        

3. Criar o servidor

Crie um arquivo chamado index.js e adicione o código abaixo:


const express = require('express');
const multer = require('multer');
const { BlobServiceClient } = require('@azure/storage-blob');
const app = express();
const port = 3000;

// Middleware para parsear JSON
app.use(express.json());

// Configuração do multer para uploads
const upload = multer({ dest: 'uploads/' });

// Configuração do Azure Blob Storage
const AZURE_STORAGE_CONNECTION_STRING = 'SEU_CONNECTION_STRING_DO_AZURE';
const containerName = 'nome-do-seu-container';

const blobServiceClient = BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING);

// Rota inicial
app.get('/', (req, res) => {
    res.send('Bem-vindo à API!');
});

// Rota para upload de arquivos
app.post('/upload', upload.single('file'), async (req, res) => {
    try {
        const file = req.file;

        if (!file) {
            return res.status(400).send('Nenhum arquivo foi enviado.');
        }

        const containerClient = blobServiceClient.getContainerClient(containerName);
        const blobName = file.originalname;
        const blockBlobClient = containerClient.getBlockBlobClient(blobName);

        // Faz o upload do arquivo para o Azure Blob Storage
        await blockBlobClient.uploadFile(file.path);

        res.status(200).json({
            mensagem: 'Arquivo enviado com sucesso!',
            blobUrl: blockBlobClient.url
        });
    } catch (error) {
        console.error('Erro ao fazer upload:', error.message);
        res.status(500).send('Erro ao enviar o arquivo.');
    }
});

// Inicia o servidor
app.listen(port, () => {
    console.log(`Servidor rodando em http://localhost:${port}`);
});

  

4. Configurar scripts no package.json

No arquivo package.json, adicione os seguintes scripts:


"scripts": {
  "start": "node index.js",
  "dev": "nodemon index.js"
}

  

5. Testar a API

  1. Inicie o servidor:
  2. npm run dev
        
  3. Use uma ferramenta como Postman para testar o upload:
    • Faça uma requisição POST para http://localhost:3000/upload com o arquivo anexado no campo file.

6. Melhorias adicionais

  • Validação de tipos de arquivo e tamanhos.
  • Integração com autenticação para proteger o acesso às rotas.
  • Organização de rotas em módulos separados.

Pronto! Agora você tem uma API funcional com suporte a upload de arquivos para o Azure Blob Storage.

Comentários

Postagens mais visitadas deste blog

Como Subir o ChromaDB com Docker-Compose

Como Subir o ChromaDB com Docker-Compose Como Subir o ChromaDB com Docker-Compose O ChromaDB é um banco de dados vetorial de alto desempenho, ideal para aplicações que utilizam inteligência artificial e busca semântica. Neste post, vamos mostrar como subir o ChromaDB utilizando o Docker-Compose . Pré-requisitos Docker instalado ( Instruções ) Docker Compose instalado ( Instruções ) Passo 1: Criando o arquivo docker-compose.yml Crie um diretório para o projeto e dentro dele, crie o arquivo docker-compose.yml com o seguinte conteúdo: version: '3.8' services: chromadb: image: ghcr.io/chroma-core/chroma:latest container_name: chromadb restart: always ports: - "8000:8000" volumes: - chroma_data:/chroma volumes: chroma_data: driver: local Passo 2: Subindo o ChromaDB Agora, no terminal, navegue até a pasta onde está o arquivo ...

Streaming de Vídeos Grandes com Node.js e ReactJS

Se você precisa exibir vídeos grandes (mais de 1GB) sem sobrecarregar o frontend, a melhor solução é o streaming progressivo. 1. Configurando o Servidor Node.js Crie um servidor com Express para servir o vídeo em partes, permitindo que o player carregue apenas o necessário. const express = require("express"); const fs = require("fs"); const path = require("path"); const app = express(); const PORT = 3000; app.get("/video", (req, res) => { const videoPath = path.join(__dirname, "videos", "meu_video.mp4"); const stat = fs.statSync(videoPath); const fileSize = stat.size; const range = req.headers.range; if (range) { const parts = range.replace(/bytes=/, "").split("-"); const start = parseInt(parts[0], 10); const end = parts[1] ? parseInt(parts[1], 10) : fileSize - 1; const chunkSize = (end - start) + 1; const fileStream = fs.createReadStream(videoPath, { start, end }); ...

Guia de instalação e configuração do Portainer no Ubuntu

  Guia Completo de Instalação do Portainer.io no Docker O Portainer.io é uma ferramenta poderosa e amigável para o gerenciamento de containers Docker, Swarm e Kubernetes. Se você trabalha com containers, essa é uma solução essencial para facilitar sua administração. Vamos aprender como instalar e configurar o Portainer no Docker. O que é o Portainer.io? O Portainer.io é uma interface gráfica simples, que permite gerenciar de maneira centralizada seus containers, volumes, redes e imagens Docker. Ele pode ser utilizado por iniciantes e profissionais, pois oferece uma administração visual dos seus ambientes. Benefícios do Portainer Interface amigável : Gerencie containers de forma visual, tornando a administração mais simples e intuitiva. Gerenciamento centralizado : Administre múltiplos ambientes Docker/Kubernetes em um único local. Facilidade para iniciantes : Reduz a curva de aprendizado do Docker com sua interface gráfica. Gerenciamento de volumes e redes : ...