Let’s explore a handy tip for adding extra metadata to the top level of your API responses.
Assume you have a resource that returns the following data:
{
"data": {
"name": "Mahmoud Ramadan",
"role": "Software Engineer"
}
}
Now, let's attach additional data to the root of the response using the `additional` method:
/**
* Adds extra metadata using the "additional" method.
*
* @return \Illuminate\Http\Resources\Json\JsonResource
*/
public function addExtraMetadata()
{
return FooResource::make(Baz::first())
->additional([
'website' => 'https://portfolio.mmramadan.com',
]);
}
This will produce the following response:
{
"data": {
"name": "Mahmoud Ramadan",
"role": "Software Engineer"
},
"website": "https://portfolio.mmramadan.com"
}
For more details, refer to the official documentation.
You can also check out the with method, which does the same thing.