api-error-handling

Solid

Implements standardized API error responses with proper status codes, logging, and user-friendly messages. Use when building production APIs, implementing error recovery patterns, or integrating error monitoring services.

API & Backend 168 stars 27 forks Updated 4 weeks ago MIT

Install

View on GitHub

Quality Score: 89/100

Stars 20%
74
Recency 20%
90
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# API Error Handling Implement robust error handling with standardized responses and proper logging. ## Standard Error Response Format ```json { "error": { "code": "VALIDATION_ERROR", "message": "Invalid request parameters", "status": 400, "requestId": "req_abc123", "timestamp": "2025-01-15T10:30:00Z", "details": [ { "field": "email", "message": "Invalid email format" } ] } } ``` ## Error Class (Node.js) ```javascript class ApiError extends Error { constructor(code, message, status = 500, details = null) { super(message); this.code = code; this.status = status; this.details = details; } static badRequest(message, details) { return new ApiError('BAD_REQUEST', message, 400, details); } static notFound(resource) { return new ApiError('NOT_FOUND', `${resource} not found`, 404); } static unauthorized() { return new ApiError('UNAUTHORIZED', 'Authentication required', 401); } } // Global error handler app.use((err, req, res, next) => { const status = err.status || 500; const response = { error: { code: err.code || 'INTERNAL_ERROR', message: status === 500 ? 'Internal server error' : err.message, status, requestId: req.id } }; if (err.details) response.error.details = err.details; if (status >= 500) logger.error(err); res.status(status).json(response); }); ``` ## Circuit Breaker Pattern ```javascript class CircuitBreaker { constructor(threshold ...

Details

Author
secondsky
Repository
secondsky/claude-skills
Created
7 months ago
Last Updated
4 weeks ago
Language
TypeScript
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category