Back-end customization
All elements of Strapi's back end, like routes, policies, middlewares, controllers, services, models, requests, responses, and webhooks, can be customized.
All elements of Strapi's back end, like routes, policies, middlewares, controllers, services, models, requests, responses, and webhooks, can be customized.
Controllers bundle actions that handle business logic for each route within Strapi’s MVC pattern. This documentation demonstrates generating controllers, extending core ones with createCoreController, and delegating heavy logic to services.
Learn how to authenticate use custom services and controllers using our FoodAdvisor example
Learn more about Strapi 5 customization possibilities
Middlewares alter the request or response flow at application or API levels. This documentation distinguishes global versus route middlewares and illustrates custom implementations with generation patterns.
Strapi models (i.e. content-types, components, and dynamic zones) define a representation of the content structure.
Strapi policies are functions that execute specific logic on each request before it reaches the controller. Policies can be customized according to your needs.
Learn more about requests and responses for Strapi, the most popular headless CMS.
Strapi routes handle requests to your content and are auto-generated for your content-types. Routes can be customized according to your needs.
Strapi's Server API for plugins allows a Strapi plugin to customize the back end part (i.e. the server) of your application.
Strapi services are a set of reusable functions, useful to simplify controllers logic.
Strapi webhooks are user-defined HTTP callbacks used by an application to notify other applications that an event occurred.