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
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.
- Crie um novo diretório para o projeto:
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
- Instale o Express:
- Instale o
multerpara lidar com uploads de arquivos: - Instale o pacote para acessar o Azure Blob Storage:
- Opcionalmente, instale o Nodemon para recarregar o servidor automaticamente:
npm install express
npm install multer
npm install @azure/storage-blob
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
- Inicie o servidor:
- Use uma ferramenta como Postman para testar o upload:
-
Faça uma requisição POST para
http://localhost:3000/uploadcom o arquivo anexado no campofile.
npm run dev
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
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.
- Crie um novo diretório para o projeto:
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
- Instale o Express:
- Instale o
multerpara lidar com uploads de arquivos: - Instale o pacote para acessar o Azure Blob Storage:
- Opcionalmente, instale o Nodemon para recarregar o servidor automaticamente:
npm install express
npm install multer
npm install @azure/storage-blob
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
- Inicie o servidor:
- Use uma ferramenta como Postman para testar o upload:
-
Faça uma requisição POST para
http://localhost:3000/uploadcom o arquivo anexado no campofile.
npm run dev
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
Postar um comentário