ngoctp / laravel-easy-jsonapi
遵循Extended Fractal包以实现更智能的API响应使用
v1.0.5
2018-08-29 10:59 UTC
Requires
- league/fractal: ^0.17.0
This package is not auto-updated.
Last update: 2024-09-29 05:14:39 UTC
README
这是一个易于响应常见API的扩展库。
此包支持Laravel 5.0及更高版本。
您还可以使用此包与Lumen一起使用。
安装
使用composer导入包
composer require ngoctp/laravel-easy-jsonapi
用法
转换器的新选项参数
通过构造函数中的新 options 参数,您可以在每个操作中可选地响应更多字段
class UserTransformer extends ExtendedTransformerAbstract { protected $name = 'user'; protected $availableIncludes = [ 'roles', ]; /** * @param User $user * @return array */ public function transform($user) { $data = [ 'id' => $user->id, 'name' => $user->name, ]; if (array_get($this->options, 'respond_birthday')) { $data['birthday'] = $user->birthday; } return $data; } public function includeRoles($user) { return new Collection($user->roles, new RoleTransformer(array_get($this->options, 'roles')), 'role'); } } // Controller class UserController extends Controller { public function index($request) { $users = \App\Models\User::get(); return eja_data($users, new \App\Transformers\UserTransformer( [ 'respond_birthday' => true, 'roles' => [ 'respond_name' => false, ] ] )); } }
响应成功消息
class UserController extends Controller { public function store($request) { // ... return eja_success('Created user successfully'); } }
响应错误消息
class UserController extends Controller { public function update($request) { $validUsername = false; if (!$validUsername) { return eja_error('Username is not valid'); } return eja_success('Updated user successfully'); } }
响应普通表单错误消息
class UserController extends Controller { public function update($request) { $validator = Validator::make($inputs, $rules); if ($validator->fails()) { return eja_form_error($validator); } return eja_success('Updated user successfully'); } }
响应数据
class UserController extends Controller { public function index($request) { $users = \App\Models\User::get(); //$users = \App\Models\User::paginate(10); return eja_data($users, new \App\Transformers\UserTransformer()); } }
编码愉快 :)