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/apitoolkit
APITOOLKIT 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.