The Hassle-Free automatic API documentation generation for Laravel.
A Swagger alernative.
Supports Open API 3.0.0
Fast: Install on any Laravel Project
Hassle Free: Auto Generate API Documentation for request rules and parameters
Analyze: In built SQL query time analyzer, response time and headers output.
Supports: Postman and OpenAPI 3.0.0 exports.
- Light and Dark mode
- Automatic rules fetching from injected Request and by regexp
- Automatic routes fetching from Laravel Routes
- Support for Laravel logs
- Support for SQL query and query time
- Support for HTTP response time and memory consumption
- Support for Authorization Headers
- Support for File uploads
- Support for Eloquents events
- Display extra documentation using markdown
- Saves history previous requests
- Added filters to sort, group and filter routes by methods, controllers, middlewares, routes
- Export laravel API, routes, rules and documentation to Postman and OpenAPI 3.0.0
Automatically generate api documentation for Laravel without writing annotations.
Lang | Versions |
---|---|
PHP | 7.4 or 8.0 or 8.1 or 8.2 |
Laravel | 6.* or 8.* or 9.* or 10.* |
You can install the package via composer:
composer require rakutentech/laravel-request-docs
You can publish the config file with:
php artisan vendor:publish --tag=request-docs-config
php artisan route:cache
(optional) Add following middleware to your API, so that the sql logs, model events are captured.
app/Http/Kernel.php
'api' => [
...
\Rakutentech\LaravelRequestDocs\LaravelRequestDocsMiddleware::class,
... and so on
View in the browser on /request-docs/
In order for this plugin to work, you need to follow the design pattern by injecting the request class inside the controller. For extra documentation you can use markdown inside your controller method as well.
Dark and Light Modes
- Uses localstorage to save history of previous requests and request headers.
- Request, sql, response and events timeline below:
Settings to sort, group and filter
You write extra documentation in markdown which will be rendered as HTML on the dashboard. Example of using it in controller
/**
* @lrd:start
* Hello markdown
* Free `code` or *text* to write documentation in markdown
* @lrd:end
*/
public function index(MyIndexRequest $request): Resource
{
You write extra params with rules with @LRDparam in comment line as one line
/**
* @LRDparam username string|max:32
* // either space or pipe
* @LRDparam nickaname string|nullable|max:32
* // override the default response codes
* @LRDparam responses 200,422
*/
public function index(MyIndexRequest $request): Resource
{
./vendor/bin/phpunit
./vendor/bin/phpcs --standard=phpcs.xml --extensions=php --ignore=tests/migrations config/ src/
Fixing lints
./vendor/bin/php-cs-fixer fix src/
./vendor/bin/php-cs-fixer fix config/
- Initial Release
- v1.9 Added improvements such as status code, response headers, custom request headers and fixed issues reported by users
- v1.10 Show PHP memory usage, gzip encoding fix
- v1.12 Bug Fix of id, and Laravel 9 support
- v1.13 Laravel 9 support
- v1.15 Adds Filter and fall back to regexp upon Exception
- v1.17 Donot restrict to FormRequest
- v1.18 Fix where prism had fixed height. Allow text area resize.
- v1.18 Updated UI and pushed unit tests
- v1.19 Exception -> Throwable for type error
- v1.20 Feature support open api 3.0.0 #10
- v1.21 Abililty to add custom params
- v1.22 Boolean|File|Image support
- v1.22 Boolean|File|Image support
- v1.23 Bug fix for lrd doc block #76
- v1.27 A few fixes on width and added request_methods
- v2.0 UI Renewal to React static
@QAParam
is now@LRDparam
- No special changes for users, upgrade to v2.x as usual
- Upgrading users will need to republish config
- v2.1 UI - adds search bar and few aligment fixes on table
- v2.2 PHP 8.1 and 8.2 support added - Groupby enabled for routes and controllers
- v2.3 Bug fix for localstorage (tabs) and full UI refactored after alpha
- v2.4 Show version on navbar and curl is using ace editor
- v2.5 Groupby final fix and localstorage clear button. Other UI refactor
- v2.6 File uploads
- v2.7 Show activity on Eloquent models
- v2.8 Show full activity on Eloquent models
- v2.13 Bug fixes, and nested params support
- v2.14 Adds path params support