Prechádzať zdrojové kódy

Add support for example value for routes using @bodyParam (fix #365)

shalvah 6 rokov pred
rodič
commit
7cdc567c83

+ 3 - 3
resources/views/partials/route.blade.php

@@ -13,13 +13,13 @@
 curl -X {{$parsedRoute['methods'][0]}} {{$parsedRoute['methods'][0] == 'GET' ? '-G ' : ''}}"{{ trim(config('app.docs_url') ?: config('app.url'), '/')}}/{{ ltrim($parsedRoute['uri'], '/') }}" \
     -H "Accept: application/json"@if(count($parsedRoute['headers'])) \
 @foreach($parsedRoute['headers'] as $header => $value)
-    -H "{{$header}}"="{{$value}}" @if(! ($loop->last))\
+    -H "{{$header}}: {{$value}}" @if(! ($loop->last))\
     @endif
 @endforeach
 @endif
 @if(count($parsedRoute['parameters'])) \
 @foreach($parsedRoute['parameters'] as $attribute => $parameter)
-    -d "{{$attribute}}"="{{$parameter['value']}}" @if(! ($loop->last))\
+    -d "{{$attribute}}"={{$parameter['value']}} @if(! ($loop->last))\
     @endif
 @endforeach
 @endif
@@ -71,7 +71,7 @@ $.ajax(settings).done(function (response) {
 Parameter | Type | Status | Description
 --------- | ------- | ------- | ------- | -----------
 @foreach($parsedRoute['parameters'] as $attribute => $parameter)
-    {{$attribute}} | {{$parameter['type']}} | @if($parameter['required']) required @else optional @endif | {!! implode(' ',$parameter['description']) !!}
+    {{$attribute}} | {{$parameter['type']}} | @if($parameter['required']) required @else optional @endif | {!! $parameter['description'] !!}
 @endforeach
 @endif
 

+ 34 - 1
src/Generators/AbstractGenerator.php

@@ -2,6 +2,7 @@
 
 namespace Mpociot\ApiDoc\Generators;
 
+use Faker\Factory;
 use ReflectionClass;
 use Illuminate\Support\Str;
 use League\Fractal\Manager;
@@ -114,8 +115,9 @@ abstract class AbstractGenerator
                 list($_, $name, $type, $required, $description) = $content;
                 $required = trim($required) == 'required' ? true : false;
                 $type = $this->normalizeParameterType($type);
+                $value = $this->getDummyValue($type);
 
-                return [$name => compact('type', 'description', 'required')];
+                return [$name => compact('type', 'description', 'required', 'value')];
             })->toArray();
 
         return $parameters;
@@ -382,8 +384,39 @@ abstract class AbstractGenerator
         $typeMap = [
             'int' => 'integer',
             'bool' => 'boolean',
+            'double' => 'float',
         ];
 
         return $type ? ($typeMap[$type] ?? $type) : 'string';
     }
+
+    private function getDummyValue(string $type)
+    {
+        $faker = Factory::create();
+        $fakes = [
+            'integer' => function () {
+                return rand(1, 20);
+            },
+            'number' => function () use ($faker) {
+                return $faker->randomFloat();
+            },
+            'float' => function () use ($faker) {
+                return $faker->randomFloat();
+            },
+            'boolean' => function () use ($faker) {
+                return $faker->boolean();
+            },
+            'string' => function () use ($faker) {
+                return str_random();
+            },
+            'array' => function () {
+                return "[]";
+            },
+            'object' => function () {
+                return "{}";
+            },
+        ];
+
+        return $fakes[$type]() ?? $fakes['string']();
+    }
 }