Implementing API-First Design in Node.js Applications
Guidelines for adopting an API-first approach in Node.js development to create scalable and maintainable APIs.
0 likes
161 views
Rule Content
{
"title": "Implementing API-First Design in Node.js Applications",
"description": "Guidelines for adopting an API-first approach in Node.js development to create scalable and maintainable APIs.",
"category": "Node.js Cursor Rules",
"rules": [
{
"id": "api-first-design",
"description": "Adopt an API-first approach by designing the API contract before implementing any code. Utilize OpenAPI specifications to define endpoints, request/response structures, and error handling.",
"severity": "error",
"pattern": ".*",
"action": "Ensure an OpenAPI specification exists and is up-to-date before starting development."
},
{
"id": "input-validation",
"description": "Implement rigorous input validation and sanitization to prevent security vulnerabilities such as SQL injection and XSS attacks.",
"severity": "error",
"pattern": ".*",
"action": "Use libraries like express-validator to validate and sanitize incoming data."
},
{
"id": "error-handling",
"description": "Centralize error handling to maintain consistency and improve maintainability.",
"severity": "warning",
"pattern": ".*",
"action": "Create a centralized error handling middleware to manage application errors uniformly."
},
{
"id": "http-methods",
"description": "Use HTTP methods according to their intended purpose to adhere to RESTful principles.",
"severity": "warning",
"pattern": ".*",
"action": "Ensure GET, POST, PUT, DELETE, etc., are used appropriately in API routes."
},
{
"id": "api-versioning",
"description": "Implement API versioning to maintain backward compatibility as the API evolves.",
"severity": "warning",
"pattern": ".*",
"action": "Include version identifiers in API endpoints, e.g., /api/v1/resource."
},
{
"id": "folder-structure",
"description": "Organize project files using a logical folder structure to enhance maintainability.",
"severity": "info",
"pattern": ".*",
"action": "Follow the Model-View-Controller (MVC) pattern or similar to structure the project."
},
{
"id": "logging",
"description": "Implement logging to monitor API activity and facilitate debugging.",
"severity": "info",
"pattern": ".*",
"action": "Use logging libraries like Winston or Morgan to log requests and errors."
},
{
"id": "security-headers",
"description": "Set appropriate security headers to protect against common web vulnerabilities.",
"severity": "error",
"pattern": ".*",
"action": "Use middleware like Helmet to set security-related HTTP headers."
},
{
"id": "rate-limiting",
"description": "Implement rate limiting to prevent abuse and ensure fair usage of the API.",
"severity": "warning",
"pattern": ".*",
"action": "Use middleware like express-rate-limit to limit repeated requests to public APIs."
},
{
"id": "testing",
"description": "Write comprehensive tests to ensure API reliability and prevent regressions.",
"severity": "info",
"pattern": ".*",
"action": "Use testing frameworks like Mocha and Chai to write unit and integration tests for API endpoints."
}
]
}