Search by

euginepj / laravel-api-specs

euginepj

Interactive, modern 2-column REST API documentation portal for Laravel applications

Package info

github.com/euginepj/laravel-api-specs

Language:Blade

pkg:composer/euginepj/laravel-api-specs

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-11-09 12:31 UTC

This package is auto-updated.

Last update: 2026-11-09 12:39:06 UTC


README

An interactive, modern, two-column REST API documentation portal for Laravel applications inspired by Stripe and Scalar developer portals.

PHP 8.2+ Laravel 11, 12, 13 License MIT

Features

  • 📑 2-Column Side-by-Side Split: Specs and parameter schemas on the left; sticky dark code console with copyable payloads on the right.
  • 📂 Collapsible Sidebar Accordion: Sections expand/collapse smoothly and auto-highlight as you scroll.
  • 📋 1-Click Copy: Copy request and response payloads with instant feedback.
  • 🎨 Status Badges & Parameter Chips: Crisp monospaced badges for HTTP verbs, required fields, data types, and validation constraints.
  • 🔒 Configurable Middleware: Easily secure docs behind auth gates (['web', 'auth']) or keep them public.
  • âš¡ Zero-Build Overhead: Works right out of the box with zero npm or node build requirements.

Installation

composer require euginepj/laravel-api-specs

Publish configuration and endpoint data templates:

php artisan vendor:publish --tag=api-specs-config
php artisan vendor:publish --tag=api-specs-content

Configuration

In config/api-specs.php:

return [
    // Route URL to access documentation (e.g. /docs/api)
    'route_prefix' => env('API_SPECS_ROUTE', 'docs/api'),

    // Middleware applied to the docs route
    'middleware' => ['web'],

    // Portal header branding
    'title' => 'TANDEEF API',
    'badge' => 'REST API Spec',
    'subtitle' => 'v1.0 • Laravel 13 • PHP 8.3',

    // Base API URL
    'base_url' => env('API_SPECS_BASE_URL', '/api'),

    // Path to the endpoints definition file
    'endpoints_file' => resource_path('api-specs/endpoints.php'),
];

Defining Endpoints

Edit resources/api-specs/endpoints.php:

return [
    'groups' => [
        [
            'id' => 'auth',
            'title' => 'Authentication',
            'description' => 'Customer authentication and token lifecycle.',
            'endpoints' => [
                [
                    'id' => 'auth-login',
                    'method' => 'POST',
                    'path' => '/api/auth/login',
                    'auth' => 'Public',
                    'description' => 'Authenticate customer credentials and generate an API bearer token.',
                    'parameters' => [
                        [
                            'name' => 'email',
                            'type' => 'string',
                            'required' => true,
                            'description' => 'Registered customer email address.',
                            'rules' => ['email'],
                        ],
                        [
                            'name' => 'password',
                            'type' => 'string',
                            'required' => true,
                            'description' => 'Customer account password.',
                            'rules' => ['min:8'],
                        ],
                    ],
                    'request_body' => [
                        'email' => 'sarah@example.com',
                        'password' => 'Password123!',
                    ],
                    'responses' => [
                        [
                            'status' => '200',
                            'label' => '200 OK',
                            'body' => [
                                'success' => true,
                                'token' => '1|token...',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],
];

License

The MIT License (MIT). Please see License File for more information.