backend-skill

star 0

Create RESTful APIs, handle HTTP requests/responses, implement middleware, and connect to databases. Use for building server-side applications and APIs.

leenBaksh By leenBaksh schedule Updated 1/9/2026

name: backend-skill description: Create RESTful APIs, handle HTTP requests/responses, implement middleware, and connect to databases. Use for building server-side applications and APIs.

Backend API Development

Instructions

1. Route Structure & Organization

  • RESTful Design: Follow REST conventions for endpoints
  • Route Groups: Organize related routes (users, products, orders)
  • Versioning: Implement API versioning (v1, v2)
  • Resource Naming: Use plural nouns for resource endpoints

2. Request/Response Handling

  • Input Validation: Validate all incoming data
  • Error Handling: Consistent error responses with proper HTTP status codes
  • Response Format: Standardized JSON response structure
  • Middleware: Implement authentication, logging, and rate limiting

3. Database Integration

  • Connection Management: Handle DB connections efficiently
  • ORM/Query Builders: Use abstractions for database operations
  • Transactions: Implement atomic operations for data integrity
  • Connection Pooling: Optimize database connections

Best Practices

  • Use environment variables for configuration
  • Implement proper error handling and logging
  • Add input validation for all endpoints
  • Use middleware for cross-cutting concerns
  • Implement rate limiting to prevent abuse
  • Add comprehensive API documentation
  • Use async/await for asynchronous operations
  • Implement proper CORS configuration
  • Add health check endpoints

Example Structures

Express.js Server Setup

// server.js
const express = require('express');
const cors = require('cors');
const helmet = require('helmet');
const morgan = require('morgan');
const rateLimit = require('express-rate-limit');
const { connectDB } = require('./config/database');

const app = express();
const PORT = process.env.PORT || 3000;

// Security middleware
app.use(helmet());
app.use(cors({
  origin: process.env.ALLOWED_ORIGINS?.split(',') || ['http://localhost:3000'],
  credentials: true
}));

// Rate limiting
const limiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 minutes
  max: 100, // Limit each IP to 100 requests per windowMs
  message: 'Too many requests from this IP, please try again later.'
});
app.use('/api/', limiter);

// Body parsing
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// Logging
app.use(morgan('combined'));

// Routes
app.use('/api/v1/auth', require('./routes/auth.routes'));
app.use('/api/v1/users', require('./routes/user.routes'));
app.use('/api/v1/products', require('./routes/product.routes'));

// Health check
app.get('/health', (req, res) => {
  res.status(200).json({
    status: 'OK',
    timestamp: new Date().toISOString(),
    uptime: process.uptime()
  });
});

// 404 handler
app.use('*', (req, res) => {
  res.status(404).json({
    success: false,
    error: 'Endpoint not found',
    path: req.originalUrl
  });
});

// Global error handler
app.use((err, req, res, next) => {
  console.error('Error:', err.stack);
  
  const statusCode = err.statusCode || 500;
  const message = err.message || 'Internal server error';
  
  res.status(statusCode).json({
    success: false,
    error: message,
    ...(process.env.NODE_ENV === 'development' && { stack: err.stack })
  });
});

// Connect to database and start server
connectDB()
  .then(() => {
    app.listen(PORT, () => {
      console.log(`Server running on port ${PORT}`);
    });
  })
  .catch((err) => {
    console.error('Failed to connect to database:', err);
    process.exit(1);
  });
Install via CLI
npx skills add https://github.com/leenBaksh/Hackathon-II-Todo-App --skill backend-skill
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator