samody / laravel-smart-postman-generator
A smart Laravel-to-Postman collection generator focused on clean structure, smart naming, request body generation, and documentation-ready API exports.
Package info
github.com/samody2006/laravel-smart-postman-generator
pkg:composer/samody/laravel-smart-postman-generator
Requires
- php: ^8.3
- ext-json: *
- illuminate/support: ^10.0|^11.0|^12.0
- phpstan/phpdoc-parser: ^1.26|^2.0
Requires (Dev)
- laravel/pint: ^1.13
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
This package is auto-updated.
Last update: 2026-05-07 19:48:47 UTC
README
A smarter Laravel-to-Postman exporter focused on generating clean, organized, and documentation-ready Postman collections with minimal manual cleanup.
Built as an enhanced fork of the original:
- Original Package:
andreaselia/laravel-api-to-postman - Original Author: Andreas Elia
This project expands the original idea into a more production-ready API documentation generator for modern Laravel applications.
Why Use This?
The common problems with generated Postman collections:
- Endpoints export with raw route paths as names
- Collections become difficult to navigate as APIs grow
- JSON bodies are flat and not representative of actual payloads
- Teams spend time manually renaming requests and organizing folders
- Large APIs require exporting everything repeatedly
This package solves those issues by generating:
- cleaner request names
- grouped request folders
- smarter JSON payloads
- scalable exports
- documentation-ready collections
Installation
composer require samody/laravel-smart-postman-generator
Publish Configuration
php artisan vendor:publish --tag=postman-config
Quick Start
Export entire API:
php artisan export:postman
Export only a specific API section:
php artisan export:postman --path=api/user
Export with JSON request bodies:
php artisan export:postman --body-mode=json
Export with bearer authentication:
php artisan export:postman --bearer="your-token"
Features
Core Export Features
- ✅ Automatic Laravel route discovery
- ✅ Postman Collection v2.1 export
- ✅ Bearer authentication support
- ✅ Basic authentication support
- ✅ Configurable headers
- ✅ Structured route export
- ✅ CRUD folder generation
- ✅ Docblock descriptions support
Smart Export Features
Route Path Filtering
Export only a section of your API instead of regenerating the entire collection.
php artisan export:postman --path=api/admin
Useful for:
- modular APIs
- large projects
- incremental documentation updates
- team-based API exports
JSON Body Support
Export request bodies as:
jsonform-dataurlencoded
Example:
'body_format' => 'json',
Body Mode Detection
Control how request bodies are generated.
'body_mode' => 'auto',
Supported modes:
| Mode | Description |
|---|---|
| formdata | Always generate form-data |
| json | Always generate JSON |
| auto | Automatically detect best body type |
FormRequest Validation Export
Automatically parse Laravel FormRequest validation rules and export them into Postman request bodies.
Supports:
- validation descriptions
- required field detection
- nullable fields
- arrays
- nested request fields
Smart Naming System (Planned)
Automatically convert technical route paths into readable Postman request names.
Example:
| Route | Method | Generated Name |
|---|---|---|
| api/user/profile | GET | Get User Profile |
| api/user/logout | POST | Request User Logout |
| api/user/orders/{id}/cancel | POST | Cancel User Order |
This removes the need for manually renaming hundreds of requests after export.
Automatic Folder Grouping (Planned)
Automatically organize requests into folders.
Group By Controller
UserController
├── Get User Profile
├── Update User Profile
└── Logout User
Group By Path
User
├── Profile
├── Orders
└── Notifications
Config example:
'group_by' => 'controller',
Supported options:
'controller'
'path'
'none'
Structured JSON Generation (Planned)
Generate real nested JSON payloads from FormRequest validation rules.
Current Flat Output
{
"items.*.product_id": "",
"items.*.quantity": ""
}
Planned Structured Output
{
"items": [
{
"product_id": 1,
"quantity": 1
}
]
}
Example Value Generation (Planned)
Automatically generate intelligent example values.
Example:
{
"email": "john@example.com",
"name": "John Doe",
"quantity": 1,
"is_active": true
}
Potential support:
- Faker integration
- enum value detection
- date examples
- UUID generation
- file placeholders
Configuration
Configuration file:
config/api-postman.php
Example Configuration
return [ 'base_url' => env('APP_URL'), 'structured' => true, 'crud_folders' => true, 'body_mode' => 'auto', 'body_format' => 'json', 'enable_formdata' => true, 'smart_naming' => true, 'group_by' => 'controller', ];
Usage
Export Entire API
php artisan export:postman
Export Specific API Section
php artisan export:postman --path=api/user
Export Using JSON Bodies
php artisan export:postman --body-mode=json
Export With Bearer Token
php artisan export:postman --bearer="your-token"
Export With Basic Auth
php artisan export:postman --basic="username:password"
Output Location
Generated collections are stored in:
storage/app/postman
Example Generated Improvements
Before
api/user/orders/{id}/cancel
After
Cancel User Order
Before
{
"items.*.product_id": ""
}
After
{
"items": [
{
"product_id": 1
}
]
}
Roadmap
Phase 1
- JSON body support
- Body mode support
- Route path filtering
Phase 2
- Smart request naming
- Automatic folder grouping
- Nested path grouping
Phase 3
- Structured JSON generation
- Example value generation
- Faker integration
Phase 4
- Response example generation
- OpenAPI support
- Environment export support
- Swagger compatibility
Testing
composer test
Real-World Benefits
Development
✅ Faster API testing
✅ Cleaner Postman collections
✅ Less manual cleanup
✅ Better onboarding for teams
✅ Easier frontend/backend collaboration
Documentation
✅ Documentation-ready exports
✅ Human-readable request names
✅ Organized request grouping
✅ Better payload representation
Team Collaboration
✅ Consistent Postman structures
✅ Easier API navigation
✅ Faster endpoint discovery
✅ Cleaner API handoffs
Contributing
Contributions are welcome.
You can:
- open issues
- suggest improvements
- submit pull requests
Credits
Original Package
Andreas Elia
andreaselia/laravel-api-to-postman
Smart Fork & Enhancements
Maintained as an enhanced developer-experience focused fork.
License
MIT