Hey everyone,
We have a team discussion which approach is better in terms of Best Practices. The current approach was to use route middleware to populate data and assign data to ctx.response.body like this:
export default factories.createCoreRouter('api::test:test', {
only: ['find'],
config: {
find: {
middlewares: [
async (ctx, next) => {
await next();
if (!ctx.url.startsWith('/api')) {
return;
}
const entry = await strapi.entityService.findMany('api::test.test', {
locale: ctx.qeury.locale,
fields: ['test'],
populate: {//etc.....}
})
//some additional business logic/feature flags
ctx.response.body = entry;
}]})}
New proposal is to move everything from route middlewares to controllers and keep it there (data population, business logic, etc).
What’s your take on that? Which approach is better? What do you middlewares for?
This topic has been created from a Discord post (1227594353032171601) to give it more visibility.
It will be on Read-Only mode here.
Join the conversation on Discord