Generate flexible REST endpoints and controllers from Sequelize models in Express or Restify applications.
Finale is a Node.js library that automatically generates RESTful API endpoints from Sequelize models, eliminating the need to manually write CRUD controllers. It integrates seamlessly with Express or Restify, providing built-in features like filtering, pagination, and sorting while allowing deep customization through middleware hooks.
Backend developers building REST APIs with Node.js, Express, and Sequelize who want to reduce boilerplate and accelerate development of standard CRUD operations.
Developers choose Finale for its ability to instantly create production-ready REST endpoints with advanced querying capabilities, while maintaining full control over authentication, authorization, and business logic through a flexible hook system.
Create flexible REST endpoints and controllers from Sequelize models in your Express app
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Creates full CRUD routes from Sequelize models with minimal configuration, as shown in the getting started example where endpoints like POST /users and GET /users/:id are generated automatically.
Uses milestone hooks (start, auth, fetch, etc.) to inject custom logic at any request stage, demonstrated in the 'Customize behavior' section with examples like adding authentication or caching.
Supports filtering, searching, sorting, and pagination out of the box via query parameters, detailed in the REST API section with curl commands for operations like ?sort=-name or ?q=james.
Manages nested resources and associations with options for shallow or deep payloads, though limited to one level of nesting as noted in the README.
Tightly coupled to Sequelize; switching to another ORM would require a complete rewrite of the API layer, reducing flexibility for future changes.
The README admits that deep payload handling for associations is only supported for one level of nesting and is not recursive, which can be restrictive for complex data models.
Configuration for middleware and hooks can become complex, as seen in examples requiring careful management of context objects and promises, increasing initial development time.
As a fork of the older Epilogue library, it might have less active maintenance or community support compared to newer alternatives, potentially leading to compatibility issues with future Sequelize versions.