1. Introdução
Testar aplicações que dependem de APIs externas pode ser um desafio. APIs podem estar indisponíveis, ter limites de taxa, ou simplesmente não existir durante o desenvolvimento de novos recursos. É aqui que o Simulador de API do Amigo do Dev se torna uma ferramenta essencial.
Com o Simulador de API, você pode criar endpoints HTTP reais e acessíveis online que retornam exatamente os dados que você precisa — sem precisar configurar servidores, banco de dados ou serviços de terceiros. Perfeito para desenvolvimento frontend, testes automatizados, prototipagem e demonstrações.
2. O que é o Simulador de API?
O Simulador de API é uma ferramenta online gratuita que permite criar endpoints HTTP temporários com respostas customizadas. Cada endpoint criado:
- ✅ É acessível online — URL pública que pode ser usada de qualquer lugar
- ✅ Retorna JSON personalizado — Você define exatamente a estrutura de dados
- ✅ Suporta todos os métodos HTTP — GET, POST, PUT, PATCH, DELETE
- ✅ Permite configurar status codes — 200, 201, 400, 404, 500, etc.
- ✅ Headers CORS habilitados — Funciona perfeitamente com aplicações frontend
- ✅ Temporário e seguro — Expira após 24 horas automaticamente
3. Casos de Uso Práticos
3.1. Desenvolvimento Frontend
Durante o desenvolvimento de uma aplicação React, Vue ou Angular, você frequentemente precisa de dados antes do backend estar pronto:
// Em vez de esperar o backend, crie um mock
const API_URL = 'https://api.amigododev.com/api-simulator/abc123';
async function fetchProducts() {
const response = await fetch(API_URL);
const data = await response.json();
return data.products;
}
3.2. Testes Automatizados
Crie endpoints para simular diferentes cenários de teste (sucesso, erro, timeout):
// Testar tratamento de erro 404
test('should handle 404 errors', async () => {
const mockUrl = 'https://api.amigododev.com/api-simulator/error404';
const response = await fetch(mockUrl);
expect(response.status).toBe(404);
});
3.3. Prototipagem Rápida
Demonstre uma ideia sem configurar infraestrutura completa:
// Apresentação para cliente ou equipe
const prototype = await fetch('https://api.amigododev.com/api-simulator/demo123');
const features = await prototype.json();
3.4. Documentação de API
Crie exemplos interativos para documentação de APIs:
# Exemplo na documentação
curl https://api.amigododev.com/api-simulator/example123
4. Como Usar — Passo a Passo
Passo 1: Acessar o Simulador
Acesse amigododev.com/ferramentas/api-simulator
Passo 2: Configurar o Método HTTP
Selecione o método HTTP que seu endpoint deve responder:
- GET — Para listar dados (produtos, usuários, etc.)
- POST — Para simular criação de recursos
- PUT — Para simular atualização completa
- PATCH — Para simular atualização parcial
- DELETE — Para simular remoção de recursos
Passo 3: Definir o Nome do Endpoint
Dê um nome descritivo para identificar facilmente o endpoint (exemplo: "Produtos da Loja", "Lista de Usuários").
Passo 4: Configurar o Status Code
Escolha o código HTTP que a resposta deve retornar:
- 200 — OK (sucesso padrão)
- 201 — Created (recurso criado)
- 400 — Bad Request (erro de validação)
- 401 — Unauthorized (não autenticado)
- 404 — Not Found (recurso não encontrado)
- 500 — Internal Server Error (erro do servidor)
Passo 5: Definir o JSON de Resposta
Escreva ou cole o JSON que você quer que o endpoint retorne. O simulador oferece exemplos prontos, mas você pode customizar completamente:
{
"users": [
{
"id": 1,
"name": "Maria Silva",
"email": "maria@example.com",
"role": "admin",
"active": true
},
{
"id": 2,
"name": "João Santos",
"email": "joao@example.com",
"role": "user",
"active": true
}
],
"total": 2,
"page": 1
}
Passo 6: Gerar o Endpoint
Clique em "Gerar Link de API". Em segundos, você receberá uma URL pública:
https://api.amigododev.com/api-simulator/x7k2m9p4q1
Passo 7: Usar o Endpoint
Copie o link e use em sua aplicação, testes ou documentação!
5. Exemplos Práticos de Uso
Exemplo 1: E-commerce — Lista de Produtos
{
"products": [
{
"id": 1,
"name": "Notebook Gamer",
"price": 5999.99,
"category": "Eletrônicos",
"inStock": true,
"image": "https://picsum.photos/200/200?random=1"
},
{
"id": 2,
"name": "Smartphone XYZ",
"price": 2999.99,
"category": "Eletrônicos",
"inStock": false,
"image": "https://picsum.photos/200/200?random=2"
}
],
"total": 2
}
Exemplo 2: Sistema de Autenticação — Login
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": 123,
"name": "Ana Paula",
"email": "ana@example.com",
"role": "admin"
},
"expiresIn": 3600,
"message": "Login realizado com sucesso"
}
Exemplo 3: Dashboard — Estatísticas
{
"metrics": {
"totalUsers": 1523,
"activeUsers": 892,
"revenue": 157320.50,
"orders": 2341
},
"period": "last_30_days",
"updatedAt": "2026-01-28T10:30:00Z"
}
Exemplo 4: Erro 404 — Recurso Não Encontrado
Configure status code 404 e retorne:
{
"error": "Resource not found",
"message": "The requested user does not exist",
"code": "USER_NOT_FOUND",
"status": 404
}
Exemplo 5: Erro 500 — Erro do Servidor
Configure status code 500 para simular falhas:
{
"error": "Internal Server Error",
"message": "Database connection failed",
"code": "DB_CONNECTION_ERROR",
"status": 500
}
6. Integração com Frontend
React / Next.js
import { useEffect, useState } from 'react';
interface Product {
id: number;
name: string;
price: number;
inStock: boolean;
}
export default function ProductList() {
const [products, setProducts] = useState<Product[]>([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
async function fetchProducts() {
try {
const response = await fetch('https://api.amigododev.com/api-simulator/abc123');
const data = await response.json();
setProducts(data.products);
} catch (error) {
console.error('Error fetching products:', error);
} finally {
setLoading(false);
}
}
fetchProducts();
}, []);
if (loading) return <div>Carregando...</div>;
return (
<div>
{products.map(product => (
<div key={product.id}>
<h3>{product.name}</h3>
<p>R$ {product.price}</p>
</div>
))}
</div>
);
}
Vue.js
<script setup>
import { ref, onMounted } from 'vue';
const products = ref([]);
const loading = ref(true);
onMounted(async () => {
try {
const response = await fetch('https://api.amigododev.com/api-simulator/abc123');
const data = await response.json();
products.value = data.products;
} catch (error) {
console.error('Error fetching products:', error);
} finally {
loading.value = false;
}
});
</script>
<template>
<div v-if="loading">Carregando...</div>
<div v-else>
<div v-for="product in products" :key="product.id">
<h3>{{ product.name }}</h3>
<p>R$ {{ product.price }}</p>
</div>
</div>
</template>
Angular
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
interface Product {
id: number;
name: string;
price: number;
}
@Component({
selector: 'app-product-list',
template: `
<div *ngIf="loading">Carregando...</div>
<div *ngFor="let product of products">
<h3>{{ product.name }}</h3>
<p>R$ {{ product.price }}</p>
</div>
`
})
export class ProductListComponent implements OnInit {
products: Product[] = [];
loading = true;
constructor(private http: HttpClient) {}
ngOnInit() {
this.http.get<any>('https://api.amigododev.com/api-simulator/abc123')
.subscribe({
next: (data) => {
this.products = data.products;
this.loading = false;
},
error: (error) => {
console.error('Error fetching products:', error);
this.loading = false;
}
});
}
}
7. Uso em Testes Automatizados
Jest + Fetch
describe('Product API', () => {
test('should fetch products successfully', async () => {
const response = await fetch('https://api.amigododev.com/api-simulator/abc123');
const data = await response.json();
expect(response.status).toBe(200);
expect(data.products).toBeDefined();
expect(data.products.length).toBeGreaterThan(0);
});
test('should handle 404 errors', async () => {
const response = await fetch('https://api.amigododev.com/api-simulator/error404');
expect(response.status).toBe(404);
const data = await response.json();
expect(data.error).toBeDefined();
});
});
Cypress E2E
describe('Product Page', () => {
beforeEach(() => {
// Interceptar chamadas reais com mock
cy.intercept('GET', '**/api/products', {
fixture: 'products.json' // ou usar endpoint do simulador
}).as('getProducts');
cy.visit('/products');
});
it('should display products from API', () => {
cy.wait('@getProducts');
cy.get('[data-testid="product-item"]').should('have.length.greaterThan', 0);
});
});
8. Dicas e Melhores Práticas
✅ Valide seu JSON
Antes de gerar o endpoint, certifique-se de que seu JSON é válido. Use o Validador JSON do Amigo do Dev.
✅ Use Status Codes Apropriados
- 200 para GET com sucesso
- 201 para POST (criação) com sucesso
- 204 para DELETE com sucesso (sem corpo)
- 400 para erros de validação
- 401 para erros de autenticação
- 404 para recursos não encontrados
- 500 para erros do servidor
✅ Estruture Dados Realistas
Crie JSONs que reflitam a estrutura real da API que você está mockando. Inclua paginação, metadados e timestamps quando apropriado.
✅ Documente seus Endpoints
Mantenha uma lista dos endpoints criados com seus propósitos e datas de expiração.
✅ Endpoints Expiram em 24 Horas
Lembre-se que os endpoints são temporários. Para uso prolongado, considere salvá-los ou recriar quando necessário.
✅ Teste Cenários de Erro
Não teste apenas o caminho feliz. Crie mocks para erros 400, 404, 500 para garantir que sua aplicação trata falhas corretamente.
⚠️ Não Use para Produção
Os endpoints são temporários e públicos. Nunca use em ambientes de produção ou com dados sensíveis.
9. Alternativas e Quando Usar Cada Uma
| Ferramenta | Quando Usar | Pros | Contras |
|---|---|---|---|
| Simulador de API (Amigo do Dev) | Testes rápidos, prototipagem, desenvolvimento frontend | Rápido, online, sem configuração | Temporário (24h), público |
| JSON Server | Desenvolvimento local com persistência | CRUD completo, persistência em arquivo | Requer instalação, apenas local |
| Mockoon | Mocks complexos com regras condicionais | Interface gráfica, muitos recursos | Requer instalação do app |
| MSW (Mock Service Worker) | Testes automatizados, desenvolvimento | Integrado ao código, muito poderoso | Curva de aprendizado |
| Postman Mock Server | Equipes, documentação | Colaborativo, documentação integrada | Requer conta, limitações no plano free |
10. Conclusão
O Simulador de API do Amigo do Dev é a ferramenta perfeita para criar mocks de APIs de forma rápida e sem complicações. Seja para desenvolvimento frontend, testes automatizados, prototipagem ou demonstrações, você pode ter um endpoint HTTP real funcionando em segundos.
Principais vantagens:
- ✅ Sem configuração — use direto no navegador
- ✅ Endpoints reais e acessíveis online
- ✅ Suporta todos os métodos HTTP e status codes
- ✅ CORS habilitado por padrão
- ✅ Gratuito e ilimitado
- ✅ Perfeito para desenvolvimento ágil
Experimente agora: Simulador de API — Amigo do Dev
🚀 Dica bônus: Combine o Simulador de API com outras ferramentas do Amigo do Dev como Testador HTTP, Formatador JSON e Decodificador JWT para um fluxo de trabalho completo!
