name: api-implementer description: Implements API endpoints, routes, controllers, and request/response handling. Use when implementing REST APIs, GraphQL APIs, or other API endpoints. Handles routing, validation, error handling, and response formatting.
API Implementer Skill
Instructions
- Analyze API requirements from task
- Review API specifications (endpoints, request/response formats)
- Implement API endpoints with proper routing
- Add request validation
- Implement error handling
- Format responses correctly
- Return implementation with:
- Route definitions
- Controller/handler functions
- Validation logic
- Error handling
- Response formatting
Examples
Input: "Implement POST /api/tasks endpoint" Output:
// routes/tasks.js
router.post('/api/tasks', authenticate, validateTaskInput, async (req, res) => {
try {
const task = await createTask({
title: req.body.title,
description: req.body.description,
userId: req.user.id
});
res.status(201).json(task);
} catch (error) {
res.status(400).json({ error: error.message });
}
});
// middleware/validation.js
function validateTaskInput(req, res, next) {
if (!req.body.title || req.body.title.trim().length === 0) {
return res.status(400).json({ error: 'Title is required' });
}
if (req.body.title.length > 255) {
return res.status(400).json({ error: 'Title must be 255 characters or less' });
}
next();
}
API Implementation Areas
- Route Definition: HTTP method, path, middleware
- Request Handling: Parse request body, query params, headers
- Validation: Input validation, data sanitization
- Business Logic: Core functionality implementation
- Error Handling: Proper error responses, status codes
- Response Formatting: Consistent response structure
- Authentication: Auth middleware, token validation
- Authorization: Permission checks, role-based access
Best Practices
- RESTful Design: Follow REST conventions
- Consistent Responses: Standard response format
- Proper Status Codes: Use appropriate HTTP status codes
- Error Handling: Comprehensive error handling
- Validation: Validate all inputs
- Documentation: Document endpoints and parameters