mhasnainjafri / apitoolkit
此包已被弃用且不再维护。未建议替代包。
APIToolkit是一个为Laravel设计的综合性包,旨在通过提供一致的响应、高效的分页、强大的缓存机制和标准化的字段定义以及适当的HTTP状态码,简化API开发过程并确保一致性。
v0.1.1
2024-06-18 09:10 UTC
Requires
- php: ^8.0|^8.2|^8.3
- illuminate/database: ^10.0|^11.0
- illuminate/http: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.11
Requires (Dev)
- ext-json: *
- mockery/mockery: ^1.4
- nunomaduro/larastan: ^2.0
- orchestra/testbench: ^7.0|^8.0
- pestphp/pest: ^2.0
- spatie/invade: ^2.0
This package is auto-updated.
Last update: 2024-09-24 07:07:09 UTC
README
APITOOLKIT是Laravel的综合性包,提供强大的工具用于构建查询、处理API响应和高效管理缓存。
安装
您可以通过composer安装此包
composer require mhasnainjafri/apitoolkit
功能
APITOOLKIT提供多种功能,用于高效构建和处理API响应
- 查询构建:使用过滤器、排序、包含等构建查询。
- API响应助手:标准化API响应。
- 缓存:为指定时间段缓存API响应。
- 自定义响应:提供成功、错误、验证以及其他类型响应的标准方法。
使用
查询构建
APITOOLKIT可以帮助您轻松构建复杂查询。
use Mhasnainjafri\APIToolkit\QueryBuilder\QueryBuilder; // Example usage $users = QueryBuilder::for(User::class) ->allowedFilters(['name', 'email']) ->allowedSorts(['name', 'created_at']) ->paginate();
API响应
APITOOLKIT提供各种方法来高效处理API响应。
成功响应
use Mhasnainjafri\APIToolkit\API; return API::success($data, 'Data retrieved successfully');
错误响应
use Mhasnainjafri\APIToolkit\API; return API::error('An error occurred', 500);
验证错误响应
use Mhasnainjafri\APIToolkit\API; $errors = ['email' => 'The email field is required.']; return API::validationError($errors);
未找到响应
use Mhasnainjafri\APIToolkit\API; return API::notFound('User not found');
缓存
您可以将响应缓存起来以提高性能并减少对数据库的负载。
缓存响应
use Mhasnainjafri\APIToolkit\API; use App\Models\User; $resource = User::query(); $cacheKey = 'users_list'; return API::cachedResponse($resource, $cacheKey);
分页缓存响应
use Mhasnainjafri\APIToolkit\API; use App\Models\User; $resource = User::query(); $pageNumber = 1; return API::paginatedCachedResponse($resource, $pageNumber);
清除缓存
use Mhasnainjafri\APIToolkit\API; $cacheKey = 'users_list'; API::clearCacheKey($cacheKey);
自定义响应
您也可以根据需要创建自定义响应。
use Mhasnainjafri\APIToolkit\API; $data = ['key' => 'value']; return API::custom($data, 'Custom response message');
常量
APITOOLKIT提供各种HTTP状态码作为常量,以便于使用
API::SUCCESS
: 200API::CREATED
: 201API::NO_CONTENT
: 204API::BAD_REQUEST
: 400API::UNAUTHORIZED
: 401API::FORBIDDEN
: 403API::NOT_FOUND
: 404API::METHOD_NOT_ALLOWED
: 405API::UNPROCESSABLE_ENTITY
: 422API::INTERNAL_SERVER_ERROR
: 500API::NOT_IMPLEMENTED
: 501API::BAD_GATEWAY
: 502API::SERVICE_UNAVAILABLE
: 503
贡献
欢迎贡献!请随时提交pull request或在GitHub上创建问题。
许可证
此包是开源软件,受MIT许可证许可。