Is it possible to customize the return of an api in the controller using strapi v4? Make a map in its return?
thank you very much.
Is it not possible to change the json response of an endpoint?
I did it like below:
async find(ctx) {
const response: any = await strapi.service('api::hero.hero').find({
populate: ['image']
});
const hero = [{
'id': response.id,
'title': response.title,
'image-default': response.image.url,
'image-large': response.image.formats.large.url,
'image-small': response.image.formats.small.url,
'image-medium': response.image.formats.medium.url,
'image-thumbnail': response.image.formats.thumbnail.url
}];
return hero;
},
You did it the right way, kind of.
Check the documentation for controllers.
You can also create a middleware for your route, in this you can intercept the request and amend any data you need to before it is returned.
Hope that helps!