Skip to content

Commit 5150ad9

Browse files
committed
Display faker data as route parameter values
1 parent 627fc8d commit 5150ad9

File tree

2 files changed

+70
-52
lines changed

2 files changed

+70
-52
lines changed

src/Mpociot/ApiDoc/ApiDocGenerator.php

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,12 @@ protected function parseRule($rule, &$attributeData)
143143
case 'accepted':
144144
$attributeData['required'] = true;
145145
$attributeData['type'] = 'boolean';
146-
$attributeData['value'] = $faker->url;
146+
$attributeData['value'] = true;
147147
break;
148148
case 'after':
149149
$attributeData['type'] = 'date';
150150
$attributeData['description'][] = 'Must be a date after: `' . date(DATE_RFC850, strtotime($parameters[0])) . '`';
151-
$attributeData['value'] = date(DATE_RFC850, strtotime('+1 day',strtotime($parameters[0])));
151+
$attributeData['value'] = date(DATE_RFC850, strtotime('+1 day', strtotime($parameters[0])));
152152
break;
153153
case 'alpha':
154154
$attributeData['description'][] = 'Only alphabetic characters allowed';
@@ -182,7 +182,7 @@ protected function parseRule($rule, &$attributeData)
182182
case 'before':
183183
$attributeData['type'] = 'date';
184184
$attributeData['description'][] = 'Must be a date preceding: `' . date(DATE_RFC850, strtotime($parameters[0])) . '`';
185-
$attributeData['value'] = date(DATE_RFC850, strtotime('-1 day',strtotime($parameters[0])));
185+
$attributeData['value'] = date(DATE_RFC850, strtotime('-1 day', strtotime($parameters[0])));
186186
break;
187187
case 'date_format':
188188
$attributeData['type'] = 'date';
@@ -207,7 +207,7 @@ protected function parseRule($rule, &$attributeData)
207207
case 'json':
208208
$attributeData['type'] = 'string';
209209
$attributeData['description'][] = 'Must be a valid JSON string.';
210-
$attributeData['value'] = json_encode(['foo','bar','baz']);
210+
$attributeData['value'] = json_encode(['foo', 'bar', 'baz']);
211211
break;
212212
case 'mimetypes':
213213
case 'mimes':
@@ -253,27 +253,45 @@ protected function parseRule($rule, &$attributeData)
253253
$attributeData['description'][] = 'Must match this regular expression: `' . $parameters[0] . '`';
254254
break;
255255
case 'boolean':
256-
$attributeData['value'] = $faker->boolean();
256+
$attributeData['value'] = true;
257+
$attributeData['type'] = $rule;
258+
break;
257259
case 'array':
258260
$attributeData['value'] = $faker->word;
261+
$attributeData['type'] = $rule;
262+
break;
259263
case 'date':
260264
$attributeData['value'] = $faker->date();
265+
$attributeData['type'] = $rule;
266+
break;
261267
case 'email':
262268
$attributeData['value'] = $faker->safeEmail;
269+
$attributeData['type'] = $rule;
270+
break;
263271
case 'string':
264272
$attributeData['value'] = $faker->word;
273+
$attributeData['type'] = $rule;
274+
break;
265275
case 'integer':
266276
$attributeData['value'] = $faker->randomNumber();
277+
$attributeData['type'] = $rule;
278+
break;
267279
case 'numeric':
268280
$attributeData['value'] = $faker->randomNumber();
281+
$attributeData['type'] = $rule;
282+
break;
269283
case 'url':
270284
$attributeData['value'] = $faker->url;
285+
$attributeData['type'] = $rule;
286+
break;
271287
case 'ip':
288+
$attributeData['value'] = $faker->ipv4;
272289
$attributeData['type'] = $rule;
273290
break;
274-
default:
275-
$attributeData['value'] = $faker->word;
276-
break;
291+
}
292+
293+
if ($attributeData['value'] === '') {
294+
$attributeData['value'] = $faker->word;
277295
}
278296
}
279297

src/resources/views/documentarian.blade.php

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
title: API Reference
33

44
language_tabs:
5-
- bash
65
- javascript
6+
- bash
77

88
includes:
99

@@ -19,67 +19,67 @@
1919

2020
# Available routes
2121
@foreach($parsedRoutes as $parsedRoute)
22-
@if($parsedRoute['title'] != '')## {{ $parsedRoute['title']}}
23-
@else## {{$parsedRoute['uri']}}
24-
@endif
25-
@if($parsedRoute['description'])
22+
@if($parsedRoute['title'] != '')## {{ $parsedRoute['title']}}
23+
@else## {{$parsedRoute['uri']}}
24+
@endif
25+
@if($parsedRoute['description'])
2626

27-
{{$parsedRoute['description']}}
28-
@endif
27+
{{$parsedRoute['description']}}
28+
@endif
2929

30-
> Example request:
30+
> Example request:
3131

32-
```bash
33-
curl "{{config('app.url')}}/{{$parsedRoute['uri']}}" \
34-
-H "Accept: application/json"@if(count($parsedRoute['parameters'])) \
35-
@foreach($parsedRoute['parameters'] as $attribute => $parameter)
36-
-d "{{$attribute}}"="{{$parameter['value']}}" \
37-
@endforeach
38-
@endif
32+
```bash
33+
curl "{{config('app.url')}}/{{$parsedRoute['uri']}}" \
34+
-H "Accept: application/json"@if(count($parsedRoute['parameters'])) \
35+
@foreach($parsedRoute['parameters'] as $attribute => $parameter)
36+
-d "{{$attribute}}"="{{$parameter['value']}}" \
37+
@endforeach
38+
@endif
3939

40-
```
40+
```
4141

42-
```javascript
43-
var settings = {
42+
```javascript
43+
var settings = {
4444
"async": true,
4545
"crossDomain": true,
4646
"url": "{{config('app.url')}}/{{$parsedRoute['uri']}}",
4747
"method": "{{$parsedRoute['methods'][0]}}",
48-
@if(count($parsedRoute['parameters']))
49-
"data": {!! str_replace(' ',' ',json_encode(array_fill_keys(array_keys($parsedRoute['parameters']), 'dummy'), JSON_PRETTY_PRINT)) !!},
50-
@endif
48+
@if(count($parsedRoute['parameters']))
49+
"data": {!! str_replace(' ',' ',json_encode(array_combine(array_keys($parsedRoute['parameters']), array_map(function($param){ return $param['value']; },$parsedRoute['parameters'])), JSON_PRETTY_PRINT)) !!},
50+
@endif
5151
"headers": {
52-
"accept": "application/json"
52+
"accept": "application/json"
53+
}
5354
}
54-
}
5555

56-
$.ajax(settings).done(function (response) {
56+
$.ajax(settings).done(function (response) {
5757
console.log(response);
58-
});
59-
```
58+
});
59+
```
6060

61-
@if(in_array('GET',$parsedRoute['methods']))
62-
> Example response:
61+
@if(in_array('GET',$parsedRoute['methods']))
62+
> Example response:
6363

64-
```json
65-
{!! $parsedRoute['response'] !!}
66-
```
67-
@endif
64+
```json
65+
{!! $parsedRoute['response'] !!}
66+
```
67+
@endif
6868

69-
### HTTP Request
70-
@foreach($parsedRoute['methods'] as $method)
71-
`{{$method}} {{$parsedRoute['uri']}}`
69+
### HTTP Request
70+
@foreach($parsedRoute['methods'] as $method)
71+
`{{$method}} {{$parsedRoute['uri']}}`
7272

73-
@endforeach
74-
@if(count($parsedRoute['parameters']))
73+
@endforeach
74+
@if(count($parsedRoute['parameters']))
7575

76-
#### Parameters
76+
#### Parameters
7777

78-
Parameter | Type | Status | Description
79-
--------- | ------- | ------- | ------- | -----------
80-
@foreach($parsedRoute['parameters'] as $attribute => $parameter)
81-
{{$attribute}} | {{$parameter['type']}} | @if($parameter['required']) required @else optional @endif | {!! implode(' ',$parameter['description']) !!}
82-
@endforeach
83-
@endif
78+
Parameter | Type | Status | Description
79+
--------- | ------- | ------- | ------- | -----------
80+
@foreach($parsedRoute['parameters'] as $attribute => $parameter)
81+
{{$attribute}} | {{$parameter['type']}} | @if($parameter['required']) required @else optional @endif | {!! implode(' ',$parameter['description']) !!}
82+
@endforeach
83+
@endif
8484

8585
@endforeach

0 commit comments

Comments
 (0)