mahmoud-birdsol/api-responses

一组负责的类,用于资源API请求

1.8 2020-09-11 18:45 UTC

This package is auto-updated.

Last update: 2024-09-12 03:20:03 UTC


README

Build Status StyleCI

此包是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=truesortAsc=emailsortDesc=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)。有关更多信息,请参阅许可文件