Laravel API Toolkit supercharges your API development with standardized responses, dynamic pagination, and more. At the time of writing, it supports the following features:
- Schema support
- Pagination helpers
- API Generator Command
- API filtering
- Actions
- Media helpers
- And more...
Using the provided api:generate
Artisan command, you can easily generate all the key files needed, including controller, requests, resources, models, migrations, etc:
php artisan api:generate Customer \ "username:string|age:integer:nullable|company_id:foreignId|status:enum(new,old)" \ --all
After running the above command, the following files are created, giving you everything you need to start building the Customer API:
Filtering is another useful feature in this package, giving you the ability to define which fields you can filter on. Given the example of a Car
model, here's what your filter configuration might look like:
namespace App\Models; use Essa\APIToolKit\Filters\Filterable; class Car extends Model{ use Filterable; protected string $default_filters = CarFilters::class; // Other model code...}
And the CarFilters
class might look like:
namespace App\Filters; use Essa\APIToolKit\Filters\QueryFilters; class CarFilters extends QueryFilters{ protected array $allowedFilters = ['color', 'model_id']; protected array $columnSearch = [];} // GET /cars?color=red
Actions is another feature that you can use in this package to encapsulate business logic within distinct classes that you can use to compose
namespace App\Actions; class CreateCar{ public function execute($data) { // ... }} // usage example in a controllerpublic function store(Request $request){ $this->createCar->execute($request->all());}
To get started with this package, check out the documentation at laravelapitoolkit.com. You can learn more about this package, get full installation instructions, and view the source code on GitHub.