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-swagger
jwt-auth
larastan
Use the interactive install command to choose additional tools:
php artisan install:mkapi --package
📌 Available packages:
laravel-backup
laravel-pulse
laravel-telescope
laravel-persian-validation
verta
turnstile
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 all
php artisan mkapi:Controller YOUR_CONTROLLER_NAME
✅ Examples:
php artisan mkapi:Controller product
php artisan mkapi:Controller all
php artisan mkapi:Model product --force
This 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:
This project is licensed under the MIT License.
- 👨💻 mk990
- 👨💻 Emad Shirzad