mhamlet/laravel-apidocs

This package is abandoned and no longer maintained. No replacement package was suggested.

API Documentation generator for Laravel

dev-master / 1.0.x-dev 2017-05-21 10:59 UTC

This package is not auto-updated.

Last update: 2020-01-24 16:04:30 UTC


README

Latest Version Build Status Quality Score Total Downloads

This Laravel package provides an API Documentation generator. It's based on your Routes and Controller Method DocBlock comments.

The package requires PHP >= 7.0 and Laravel 5.4.

Installation

Add the package in your composer.json by executing the command.

composer require mhamlet/laravel-apidocs

Next, add the service provider to config/app.php

MHamlet\Apidocs\ApidocsServiceProvider::class,

Documentation

// The main class of package is MHamlet\Apidocs\Generator
// Let's write a simple "use"
use MHamlet\Apidocs\Generator;

// Generator has two statically declared methods - "forAllRoutes" and "forRoutesWithPrefix".

// The first one will provide you to generate documentation for all defined
// routes in your application.
$routeGenerator = Generator::forAllRoutes();

// The second one will provide you to generate documentation for routes,
// which URL's starts with given prefix.
$routeGenerator = Generator::forRoutesWithPrefix('api');

// The route generator also has two methods - "describeRoutes" and "generate"

// The first one will parse and describe the routes for you.
$routeGenerator->describeRoutes()

// It will return the following (the result is serialized in json to make it readable in this example)
/*
[
    {
        "path":"api/users",
        "controller":"App\\Http\\Controllers\\UserController",
        "method":"index",
        "verbs":[
            "GET",
            "HEAD"
        ]
    }
]
*/

// The second one will parse routes, controller comments and return the
// API documentation itself.
$routeGenerator->generate()

// It will return the following result
/*
[
    {
        "path":"api\/users",
        "verbs":[
            "GET",
            "HEAD"
        ],
        "description":"Returns list of all users",
        "params":[
            {
                "type":"int",
                "name":"from",
                "description":"test from"
            },
            {
                "type":"int",
                "name":"offset",
                "description":"test offset"
            }
        ],
    }
]
*/

License

This package is open-sourced software licensed under the MIT license