Package Data | |
---|---|
Maintainer Username: | 74ifa |
Maintainer Contact: | i74ifa@gmail.com (i74ifa) |
Package Create Date: | 2022-02-21 |
Package Last Update: | 2024-03-20 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-10 15:00:10 |
Package Statistics | |
---|---|
Total Downloads: | 25 |
Monthly Downloads: | 1 |
Daily Downloads: | 0 |
Total Stars: | 1 |
Total Watchers: | 1 |
Total Forks: | 0 |
Total Open Issues: | 0 |
Underway
The work is started in the trait class called Gpapi
We add it to the Resource Class to be supported after that
Let's start a project to show the way
We will stick to this formula
localhost/bestApi/api/post/1?relations=tags
relations=tags
We want a relationship tags
Define params for a given relationship Not supported yet
localhost/bestApi/api/post/1?relations=tags[id, name]
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class PostResource extends JsonResource
{
public function toArray($request)
{
return parent::toArray($request);
}
}
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class TagResource extends JsonResource
{
public function toArray($request)
{
return parent::toArray($request);
}
}
This is the default resources
Let's support PostResource
use I74ifa\Gpapi\Gpapi
use I74ifa\Gpapi\Interfaces\interfaceGpapi;
class QuestionResource extends JsonResource implements interfaceGpapi
{
use Gpapi;
public function toArray($request)
{
return $this->resolveRelations($request);
}
public function resolveRelations($request)
{
$data = [
'id' => $this->getKey(),
'table' => $this->getTable(),
'data' => [
'title' => $this->title,
// ...any_params
],
];
// If a route contains relations
if ($request->has('relations')) {
$data['relationships'] = $this->withRelations($request->get('relations'));
}
}