mahmoud-birdsol / api-responses
一组负责的类,用于资源API请求
1.8
2020-09-11 18:45 UTC
Requires
- php: ^7.0
- laravel/framework: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|~6.0.0|~7.1|~8
- spatie/laravel-fractal: ^5.4
Requires (Dev)
- orchestra/testbench: ~3.5.0|~3.6.0|~3.7.0
- phpunit/phpunit: ^6.2|^7.0
README
此包是Laravel API开发人员使用的响应助手类,用于与transformers包一起使用,我们使用的transformers包是 spatie/laravel-fractal。您将在该包中找到针对所有REST API端点的辅助类,但尝试值位于索引响应中。
-
索引响应
-
显示响应
-
更新响应
-
删除响应
-
创建响应
安装
composer require mahmoud-birdsol/api-responses
配置 可以配置分页适配器以及分页请求键。
php artisan vendor:publish --provider="Alacrity\Responses\Providers\ResponseServiceProvider"
/**
* Pagination config variables.
*/
'pagination_adapter' => \League\Fractal\Pagination\IlluminatePaginatorAdapter::class,
'pagination_request_key' => 'paginate',
使用方法
索引响应
要从您的控制器返回索引响应,只需返回该类的新实例,并通过Eloquent模型查询构建器和转换器传递。它专门设计成这样,以便您可以添加任何需要的默认查询,例如对模型进行授权限制作用域,或需要在模型查询级别存在的多租户应用程序,您将从这个后端过滤该类。
return new IndexResponse(User::query(), new UserTransformer());
前端使用 您可以使用请求参数通过一些现成的函数操作此响应。
- 分页 您可以向API发送paginate=10来获取分页响应。
- 过滤器 您可以使用Eloquent作用域进行过滤,例如按用户ID过滤。您在模型上有一个作用域方法
public function scopeUser($query, $userId)
。您可以通过发送带有user={id}
的请求轻松从前端使用此方法。 - 排序 您还可以从您的前端通过传递
latest=true
或sortAsc=email
或sortDesc=id
来对响应数据进行排序,只需使用任何您希望使用的属性进行排序即可。
显示响应
显示响应只是一个简单的类,它将使用fractal转换您的数据并将其返回给用户。
return new ShowResponse($model, new ModelTransformer());
更新响应
更新响应与显示响应非常相似,但会在幕后刷新更新后的模型,这样您就可以在控制器方法中轻松地这样做。
public function update($request, User $user)
{
$user->update($request->all());
return new UpdatedResponse($user, new UserTransformer());
}
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。