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 are JavaScript files that contain a set of methods, called actions, reached by the client according to the requested route. Whenever a client requests the route, the action performs the business logic code and sends back the response. Controllers represent the C in the model-view-controller (MVC) pattern.
Learn how to authenticate use custom services and controllers using our FoodAdvisor example
Learn more about Strapi 5 customization possibilities
The diagram represents a simplified version of how a request travels through the Strapi back end, with global middlewares highlighted. The backend customization introduction page includes a complete, interactive diagram.
Strapi models (i.e. content-types, components, and dynamic zones) define a representation of the data 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.