MkApi is a Laravel-based CLI tool that simplifies API development by generating essential files like models, controllers, and Swagger documentation โ all with a single command. Itโs designed to help you build faster, cleaner, and more documented APIs. ๐งฐโจ
This project utilizes the following packages to boost development and maintain high standards:
| ๐ฆ Package Name | ๐ Description | ๐ข Version |
|---|---|---|
l5-swagger |
Swagger API documentation generator for Laravel. | ^8.6 |
jwt-auth |
JSON Web Token (JWT) authentication for secure APIs. | ^2.7 |
larastan |
Static analysis tool to catch bugs early using PHPStan for Laravel. | ^3.0 |
laravel-backup |
Seamless backup of databases and files in Laravel apps. | ^9.1 |
laravel-pulse |
Real-time performance insights for Laravel applications. | ^1.4 |
laravel-telescope |
Debugging assistant for Laravel. Monitors requests, logs, queries, mail, jobs, and more. | ^5.8 |
laravel-persian-validation |
Persian-specific validation rules for form requests. | ^2.0 |
verta |
Date handling between Solar and Gregorian calendars. | ^8.5 |
turnstile |
Easy integration with Cloudflare Turnstile for bot protection. | ^2.0 |
composer require mk990/mkapi --dev
php artisan install:mkapi๐ง The following packages are installed by default:
l5-swaggerjwt-authlarastan
Use the interactive install command to choose additional tools:
php artisan install:mkapi --package๐ Available packages:
laravel-backuplaravel-pulselaravel-telescopelaravel-persian-validationvertaturnstile
MkApi provides easy-to-use artisan commands to generate models and controllers with Swagger support.
php artisan mkapi:Model YOUR_MODEL_NAMEโ Examples:
php artisan mkapi:Model product
php artisan mkapi:Model allphp artisan mkapi:Controller YOUR_CONTROLLER_NAMEโ Examples:
php artisan mkapi:Controller product
php artisan mkapi:Controller allphp artisan mkapi:Model product --forceThis will replace any existing ProductModel.php file.
php artisan mkapi:Controller product --code๐ง Example generated method in ProductController.php:
public function store(Request $request): JsonResponse
{
$validated = $request->validate([
'name' => 'required|string|max:255',
]);
try {
return $this->success(Product::create($validated));
} catch (Exception $e) {
Log::error($e->getMessage());
return $this->error('create error');
}
}โก๏ธ Explore more generated methods in the TestController file.
We love contributions! If you have ideas or improvements, feel free to:
- ๐ Create an Issue
- ๐ Submit a Pull Request
This project is licensed under the MIT License.
- ๐จโ๐ป mk990
- ๐จโ๐ป Emad Shirzad
