Laravel Request Docs

rakutentech/laravel-request-docs image

Laravel Request Docs stats

Downloads
307.7K
Stars
536
Open Issues
1
Forks
85

View on GitHub →

Automatically generate Laravel docs from request rules, controllers and routes

Laravel Request Docs

The Hassle-Free automatic API documentation generation for Laravel.
A Swagger alternative.
Supports Open API 3.0.0

Try latest DEMO!

CI Node CI PHP codecov Latest Stable Version Total Downloads License

Fast Install on any Laravel Project

Hassle Free Auto Generate API Documentation for request rules and parameters

Analyze Inbuilt SQL query time analyzer, response time and headers output.

Supports Postman and OpenAPI 3.0.0 exports.

Features

  • 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

Read on Medium

Automatically generate API documentation for Laravel without writing annotations.

Read more: https://medium.com/web-developer/laravel-automatically-generate-api-documentation-without-annotations-a-swagger-alternative-e0699409a59e

Requirements

Lang Versions
PHP 7.4 or 8.0 or 8.1 or 8.2
Laravel 6.* or 8.* or 9.* or 10.*

Installation

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 publish assets
# php artisan vendor:publish --tag=request-docs-assets

(optional) Add the following middleware to your API, so that the SQL logs and model events are captured.

app/Http/Kernel.php

'api' => [
...
\Rakutentech\LaravelRequestDocs\LaravelRequestDocsMiddleware::class,
... and so on

Usage

Dashboard

View in the browser on /request-docs/

Design pattern

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.

Screenshots

Dark and Light Modes

  • Uses local storage to save the history of previous requests and request headers.
  • Request, SQL, response and events timeline below:

Settings to sort, group and filter

Extra

You write extra documentation in markdown which will be rendered as HTML on the dashboard. Example of using it in the controller

/**
* @lrd:start
* Hello markdown
* Free `code` or *text* to write documentation in markdown
* @lrd:end
*/
public function index(MyIndexRequest $request): Resource
{

Params not in rules

You write extra params with rules with @LRDparam in the 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
{

Testing

./vendor/bin/phpunit

Linting

./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/

Star History

Changelog

  • 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 Do not restrict to FormRequest
  • v1.18 Fix where prism had fixed height. Allow the 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 Ability 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 alignment fixes on table
  • v2.2 PHP 8.1 and 8.2 support added - Groupby enabled for routes and controllers
  • v2.3 Bug fix for local storage (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 local storage 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
  • v2.16 Top Navbar is fixed
  • v2.19 Publish _astro assets
  • v2.25 laravel-request-docs:export command to export

Contributors

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.


Rakutentech Laravel Request Docs Related Articles

A Free Shift to Check If Your App is Ready for Laravel Cloud image

A Free Shift to Check If Your App is Ready for Laravel Cloud

Read article
Manage Software Licenses in Laravel with Laravel Licensing image

Manage Software Licenses in Laravel with Laravel Licensing

Read article
Laravel Prompts v0.3.15 Adds Streaming, Tasks, Autocomplete, and More image

Laravel Prompts v0.3.15 Adds Streaming, Tasks, Autocomplete, and More

Read article
Kit: An Opinionated API Starter Kit for Laravel image

Kit: An Opinionated API Starter Kit for Laravel

Read article
Laravel OpenAPI CLI: Generate Artisan Commands from Your API Spec image

Laravel OpenAPI CLI: Generate Artisan Commands from Your API Spec

Read article
Meet LaraUtilX: A Utility Toolkit Every Laravel Developer Needs image

Meet LaraUtilX: A Utility Toolkit Every Laravel Developer Needs

Read article
Honeybadger logo

Honeybadger

Simple developer-focused application monitoring for Laravel. Error tracking, log management, uptime monitoring, status pages, and more!

Honeybadger
Securing Laravel logo

Securing Laravel

The essential security resource for Laravel devs, covering everything you need to keep your apps secure. Sign up to receive weekly security tips and monthly in depth articles, diving deep into security concepts you need to know!

Securing Laravel
Lucky Media logo

Lucky Media

Get Lucky Now - the ideal choice for Laravel Development, with over a decade of experience!

Lucky Media
No Compromises logo

No Compromises

Joel and Aaron, the two seasoned devs from the No Compromises podcast, are now available to hire for your Laravel project. ⬧ Flat rate of $9500/mo. ⬧ No lengthy sales process. ⬧ No contracts. ⬧ 100% money back guarantee.

No Compromises
Harpoon: Next generation time tracking and invoicing logo

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing
Laravel Cloud logo

Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Laravel Cloud