package to solve the problem of increasing unused data in api.
i74ifa/gpapi is a Laravel package for package to solve the problem of increasing unused data in api..
It currently has 1 GitHub stars and 28 downloads on Packagist (latest version 0.2).
Install it with composer require i74ifa/gpapi.
Discover more Laravel packages by i74ifa
or browse all Laravel packages to compare alternatives.
Last updated
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
gpapi.test/bestApi/api/post/1?relations=tags
relations=tags We want a relationship tags
Define params for a given relationship
gpapi.test/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' => $this->getParams($request->get('params')),
];
// If a route contains relations
if ($request->has('relations')) {
$data['relationships'] = $this->withRelations($request->get('relations'));
}
}