Skip to content

Commit 0cb3ab4

Browse files
alpha
1 parent fc6b367 commit 0cb3ab4

8 files changed

+43
-163
lines changed

README.md

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Laravel Docs Generator
22

3-
Automatically generate docs from request Rules
3+
Automatically generate api documentation for Laravel without writing annotations.
44

55

66
## Requirements
@@ -22,23 +22,38 @@ composer require rakutentech/laravel-request-docs --dev
2222
You can publish the config file with:
2323

2424
```bash
25-
php artisan vendor:publish --provider="Rakutentech\LaravelRequestDocs\LaravelRequestDocsServiceProvider"
25+
php artisan vendor:publish --tag=request-docs-config
2626
```
2727

2828
## Usage
2929

30+
View in the browser on ``/request-docs/``
31+
32+
or generate a static HTML
33+
3034
```php
31-
php artisan laravel-request-docs
35+
php artisan lrd:generate
3236
```
3337

3438
Docs HTML is generated inside ``docs/``.
3539

36-
### Sample
40+
## Design pattern
41+
42+
In order for this plugin to work, you need to follow the design pattern by injecting the request class inside the controller.
43+
For extra documentation you can use markdown inside your controller method as well.
44+
45+
![Design pattern](https://imgur.com/yXjq3jp.png)
46+
47+
### Screenshots
3748

38-
#### Screenshot
49+
Generated API documentation
3950

51+
![Preview](https://imgur.com/8DvBBhs.png)
52+
53+
Try API
54+
55+
![Preview](https://imgur.com/kcKVSzm.png)
4056

41-
#### Get JSON output
4257

4358
## Testing
4459

@@ -48,9 +63,5 @@ Docs HTML is generated inside ``docs/``.
4863

4964
## Changelog
5065

51-
- Initial Release - POC
52-
53-
54-
## TODO
66+
- Initial Release
5567

56-
- Support Swagger

config/request-docs.php

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,6 @@
1414
* Path to to static HTML if using command line.
1515
*/
1616
'docs_path' => base_path('docs/request-docs/'),
17-
'swagger' => [
18-
/*
19-
* https://github.com/DarkaOnLine/L5-Swagger
20-
* File name of the generated json documentation file by Laravel swagger
21-
*/
22-
'docs_json_path' => storage_path('api-docs/api-docs.json') // change it to null to disable
23-
],
2417
'hide_matching' => [
2518
"#^telescope#",
2619
"#^docs#",

resources/views/index.blade.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,7 @@ class="my-prism-editor"
399399
doc.loading = true
400400
axios.defaults.headers.common['X-Request-LRD'] = 'lrd'
401401
axios.defaults.headers.common['X-CSRF-TOKEN'] = '{{ csrf_token() }}'
402+
402403
axios({
403404
method: method,
404405
url: url,

src/Commands/LaravelRequestDocsCommand.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,20 @@
44

55
use Illuminate\Console\Command;
66
use Rakutentech\LaravelRequestDocs\LaravelRequestDocs;
7-
use Rakutentech\LaravelRequestDocs\LaravelRequestSwaggerDocs;
7+
88
use File;
99

1010
class LaravelRequestDocsCommand extends Command
1111
{
1212
public $signature = 'lrd:generate';
1313

14-
public $description = 'Generate request docs to HTML and update swagger json';
14+
public $description = 'Generate request docs to HTML';
1515

1616
private $laravelRequestDocs;
17-
private $laravelRequestSwaggerDocs;
1817

19-
public function __construct(LaravelRequestDocs $laravelRequestDocs, LaravelRequestSwaggerDocs $laravelRequestSwaggerDocs)
18+
public function __construct(LaravelRequestDocs $laravelRequestDocs)
2019
{
21-
$this->laravelRequestDocs = $laravelRequestDocs;
22-
$this->laravelRequestSwaggerDocs = $laravelRequestSwaggerDocs;
20+
$this->laravelRequestDocs = $laravelRequestDocs;
2321
parent::__construct();
2422
}
2523

src/Commands/LaravelRequestDocsSwaggerCommand.php

Lines changed: 0 additions & 42 deletions
This file was deleted.

src/LaravelRequestDocs.php

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Illuminate\Http\Request;
88
use Illuminate\Foundation\Http\FormRequest;
99
use Illuminate\Support\Str;
10+
use Exception;
1011
class LaravelRequestDocs
1112
{
1213

@@ -67,15 +68,19 @@ public function getControllersInfo(): Array
6768
$controllersInfo = [];
6869
$routes = collect(Route::getRoutes());
6970
foreach ($routes as $route) {
70-
$controllersInfo[] = [
71-
'uri' => $route->uri,
72-
'methods' => $route->methods,
73-
'middlewares' => !is_array($route->action['middleware']) ? [$route->action['middleware']] : $route->action['middleware'],
74-
'controller' => explode('@', $route->action['controller'])[0],
75-
'method' => explode('@', $route->action['controller'])[1],
76-
'rules' => [],
77-
'docBlock' => "",
78-
];
71+
try {
72+
$controllersInfo[] = [
73+
'uri' => $route->uri,
74+
'methods' => $route->methods,
75+
'middlewares' => !is_array($route->action['middleware']) ? [$route->action['middleware']] : $route->action['middleware'],
76+
'controller' => explode('@', $route->action['controller'])[0],
77+
'method' => explode('@', $route->action['controller'])[1],
78+
'rules' => [],
79+
'docBlock' => "",
80+
];
81+
} catch (Exception $e) {
82+
continue;
83+
}
7984
}
8085

8186
return $controllersInfo;
@@ -109,7 +114,7 @@ public function appendRequestRules(Array $controllersInfo)
109114
return $controllersInfo;
110115
}
111116

112-
public function lrdDocComment(bool|string $docComment): string
117+
public function lrdDocComment($docComment): string
113118
{
114119
$lrdComment = "";
115120
$counter = 0;

src/LaravelRequestDocsServiceProvider.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
use Spatie\LaravelPackageTools\Package;
66
use Spatie\LaravelPackageTools\PackageServiceProvider;
77
use Rakutentech\LaravelRequestDocs\Commands\LaravelRequestDocsCommand;
8-
use Rakutentech\LaravelRequestDocs\Commands\LaravelRequestDocsSwaggerCommand;
98
use Route;
109

1110
class LaravelRequestDocsServiceProvider extends PackageServiceProvider
@@ -22,8 +21,7 @@ public function configurePackage(Package $package): void
2221
->hasConfigFile('request-docs')
2322
->hasViews()
2423
//->hasAssets()
25-
->hasCommand(LaravelRequestDocsCommand::class)
26-
->hasCommand(LaravelRequestDocsSwaggerCommand::class);
24+
->hasCommand(LaravelRequestDocsCommand::class);
2725

2826
Route::get(config('request-docs.url'), [\Rakutentech\LaravelRequestDocs\Controllers\LaravelRequestDocsController::class, 'index'])
2927
->name('request-docs.index')

src/LaravelRequestSwaggerDocs.php

Lines changed: 0 additions & 84 deletions
This file was deleted.

0 commit comments

Comments
 (0)