APITOOLKIT is a comprehensive package for Laravel that provides powerful tools for building queries, handling API responses, and managing caching efficiently.
You can install the package via composer:
composer require mhasnainjafri/apitoolkitAPITOOLKIT provides a variety of features for building and handling API responses efficiently:
- Query Building: Construct queries with filters, sorts, includes, and more.
- API Response Helpers: Standardize API responses.
- Caching: Cache API responses for a specified duration.
- Custom Responses: Standardized methods for success, error, validation, and other types of responses.
APITOOLKIT helps you build complex queries easily.
use Mhasnainjafri\APIToolkit\QueryBuilder\QueryBuilder;
// Example usage
$users = QueryBuilder::for(User::class)
->allowedFilters(['name', 'email'])
->allowedSorts(['name', 'created_at'])
->paginate();APITOOLKIT offers various methods to handle API responses efficiently.
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');You can cache responses to improve performance and reduce load on your database.
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);You can also create custom responses as needed.
use Mhasnainjafri\APIToolkit\API;
$data = ['key' => 'value'];
return API::custom($data, 'Custom response message');APITOOLKIT provides various HTTP status codes as constants for convenience:
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
Contributions are welcome! Please feel free to submit a pull request or open an issue on GitHub.
This package is open-sourced software licensed under the MIT license.