i74ifa/gpapi
Composer 安装命令:
composer require i74ifa/gpapi
包简介
package to solve the problem of increasing unused data in api.
README 文档
README
Solutions
- response specific relationships
- response specific response params
- response params from relationships
how is work
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
Relations param form
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]
Models
- App\Models\Post
- App\Models\Tag
Resources
<?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')); } }
统计信息
- 总下载量: 28
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-02-22