api-endpoint-builder
Ajuda seu agente a construir pontos de acesso (endpoints) para APIs REST. Ele cuida da segurança, validação e documentação, seguindo as melhores práticas.
O que ela faz
Esta ferramenta ajuda a criar partes de um site ou aplicativo que recebem informações e respondem a elas. Ela garante que as informações recebidas estejam corretas e seguras.
Quando usar
- ✓Quando você precisa criar uma nova função para um aplicativo.
- ✓Ao adicionar novas seções a um site existente.
- ✓Sempre que precisar que seu aplicativo receba e processe dados.
Exemplo do que pedir para a IA
“Crie um ponto de acesso para registrar novos usuários com nome, email e senha.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ela define como a informação chega (rota), verifica se a informação está correta (validação), protege o acesso (autenticação) e retorna uma resposta clara.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill api-endpoint-builderOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/api-endpoint-builder/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Construtor de Endpoints de API
Construa endpoints de API REST completos e prontos para produção com validação adequada, tratamento de erros, autenticação e documentação.
Quando Usar Esta Habilidade
- O usuário pede para "criar um endpoint de API" ou "construir uma API REST"
- Construindo novos recursos de backend
- Adicionando endpoints a APIs existentes
- O usuário menciona "API", "endpoint", "rota" ou "REST"
- Criando operações CRUD
O Que Você Construirá
Para cada endpoint que você criar:
- Manipulador de rota com o método HTTP apropriado
- Validação de entrada (corpo da requisição, parâmetros, query)
- Verificações de autenticação/autorização
- Lógica de negócios
- Tratamento de erros
- Formatação de resposta
- Documentação da API
- Testes (se solicitado)
Estrutura do Endpoint
1. Definição da Rota
// Express example
router.post('/api/users', authenticate, validateUser, createUser);
// Fastify example
fastify.post('/api/users', {
preHandler: [authenticate],
schema: userSchema
}, createUser);
2. Validação de Entrada
Sempre valide antes de processar:
const validateUser = (req, res, next) => {
const { email, name, password } = req.body;
if (!email || !email.includes('@')) {
return res.status(400).json({ error: 'Valid email required' });
}
if (!name || name.length < 2) {
return res.status(400).json({ error: 'Name must be at least 2 characters' });
}
if (!password || password.length < 8) {
return res.status(400).json({ error: 'Password must be at least 8 characters' });
}
next();
};
3. Implementação do Manipulador
const createUser = async (req, res) => {
try {
const { email, name, password } = req.body;
// Check if user exists
const existing = await db.users.findOne({ email });
if (existing) {
return res.status(409).json({ error: 'User already exists' });
}
// Hash password
const hashedPassword = await bcrypt.hash(password, 10);
// Create user
const user = await db.users.create({
email,
name,
password: hashedPassword,
createdAt: new Date()
});
// Don't return password
const { password: _, ...userWithoutPassword } = user;
res.status(201).json({
success: true,
data: userWithoutPassword
});
} catch (error) {
console.error('Create user error:', error);
res.status(500).json({ error: 'Internal server error' });
}
};
Melhores Práticas
Códigos de Status HTTP
200- Sucesso (GET, PUT, PATCH)201- Criado (POST)204- Sem Conteúdo (DELETE)400- Requisição Inválida (falha na validação)401- Não Autorizado (não autenticado)403- Proibido (não autorizado)404- Não Encontrado409- Conflito (duplicado)500- Erro Interno do Servidor
Formato da Resposta
Estrutura consistente:
// Success
{
"success": true,
"data": { ... }
}
// Error
{
"error": "Error message",
"details": { ... } // optional
}
// List with pagination
{
"success": true,
"data": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 100
}
}
Checklist de Segurança
- Autenticação necessária para rotas protegidas
- Verificações de autorização (usuário é dono do recurso)
- Validação de entrada em todos os campos
- Prevenção de injeção de SQL (use consultas parametrizadas)
- Limitação de taxa em endpoints públicos
- Nenhum dado sensível em respostas (senhas, tokens)
- CORS configurado corretamente
- Limites de tamanho de requisição definidos
Tratamento de Erros
// Centralized error handler
app.use((err, req, res, next) => {
console.error(err.stack);
// Don't leak error details in production
const message = process.env.NODE_ENV === 'production'
? 'Internal server error'
: err.message;
res.status(err.status || 500).json({ error: message });
});
Padrões Comuns
Operações CRUD
// Create
POST /api/resources
Body: { name, description }
// Read (list)
GET /api/resources?page=1&limit=20
// Read (single)
GET /api/resources/:id
// Update
PUT /api/resources/:id
Body: { name, description }
// Delete
DELETE /api/resources/:id
Paginação
const getResources = async (req, res) => {
const page = parseInt(req.query.page) || 1;
const limit = parseInt(req.query.limit) || 20;
const skip = (page - 1) * limit;
const [resources, total] = await Promise.all([
db.resources.find().skip(skip).limit(limit),
db.resources.countDocuments()
]);
res.json({
success: true,
…
Perguntas frequentes
O que é um 'endpoint'?
É como um endereço específico no seu aplicativo onde ele pode receber ou enviar informações.
Por que a validação é importante?
Para garantir que apenas informações corretas e completas sejam aceitas, evitando erros e problemas de segurança.
O que significa 'produção-pronto'?
Significa que o código gerado é seguro, confiável e está pronto para ser usado em um aplicativo real, não apenas para testes.
Detalhes
Descrição original do autor
Builds production-ready REST API endpoints with validation, error handling, authentication, and documentation. Follows best practices for security and scalability.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2157
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC