Browse Source

Support dynamic base URL (needs tests) (#723)

Shalvah 1 year ago
parent
commit
b32959d441

+ 3 - 2
config/scribe.php

@@ -17,7 +17,8 @@ return [
     'description' => '',
 
     /*
-     * The base URL displayed in the docs. If this is empty, Scribe will use the value of config('app.url').
+     * The base URL displayed in the docs. If this is empty, Scribe will use the value of config('app.url') at generation time.
+     * If you're using `laravel`` type, you can set this to a dynamic string, like '{{ config("app.tenant_url") }}' to get a dynamic base URL.
      */
     'base_url' => null,
 
@@ -189,7 +190,7 @@ return [
 
         /**
          * The base URL for the API tester to use (for example, you can set this to your staging URL).
-         * Leave as null to use the current app URL (config(app.url)).
+         * Leave as null to use the current app URL when generating (config("app.url")).
          */
         'base_url' => null,
 

+ 1 - 1
resources/views/partials/example-requests/bash.md.blade.php

@@ -4,7 +4,7 @@
 @endphp
 ```bash
 curl --request {{$endpoint->httpMethods[0]}} \
-    {{$endpoint->httpMethods[0] == 'GET' ? '--get ' : ''}}"{{ rtrim($baseUrl, '/')}}/{{ ltrim($endpoint->boundUri, '/') }}@if(count($endpoint->cleanQueryParameters))?{!! u::printQueryParamsAsString($endpoint->cleanQueryParameters) !!}@endif"@if(count($endpoint->headers)) \
+    {{$endpoint->httpMethods[0] == 'GET' ? '--get ' : ''}}"{!! rtrim($baseUrl, '/') !!}/{{ ltrim($endpoint->boundUri, '/') }}@if(count($endpoint->cleanQueryParameters))?{!! u::printQueryParamsAsString($endpoint->cleanQueryParameters) !!}@endif"@if(count($endpoint->headers)) \
 @foreach($endpoint->headers as $header => $value)
     --header "{{$header}}: {{ addslashes($value) }}"@if(! ($loop->last) || ($loop->last && count($endpoint->bodyParameters))) \
 @endif

+ 2 - 2
resources/views/partials/example-requests/javascript.md.blade.php

@@ -4,7 +4,7 @@
 @endphp
 ```javascript
 const url = new URL(
-    "{{ rtrim($baseUrl, '/') }}/{{ ltrim($endpoint->boundUri, '/') }}"
+    "{!! rtrim($baseUrl, '/') !!}/{{ ltrim($endpoint->boundUri, '/') }}"
 );
 @if(count($endpoint->cleanQueryParameters))
 
@@ -53,7 +53,7 @@ fetch(url, {
     body,
 @elseif(count($endpoint->cleanBodyParameters))
 @if ($endpoint->headers['Content-Type'] == 'application/x-www-form-urlencoded')
-    body: body,
+    body,
 @else
     body: JSON.stringify(body),
 @endif

+ 3 - 2
resources/views/partials/example-requests/php.md.blade.php

@@ -4,9 +4,10 @@
 @endphp
 ```php
 $client = new \GuzzleHttp\Client();
+$url = '{!! rtrim($baseUrl, '/') . '/' . ltrim($endpoint->boundUri, '/') !!}';
 @if($endpoint->hasHeadersOrQueryOrBodyParams())
 $response = $client->{{ strtolower($endpoint->httpMethods[0]) }}(
-    '{{ rtrim($baseUrl, '/') . '/' . ltrim($endpoint->boundUri, '/') }}',
+    $url,
     [
 @if(!empty($endpoint->headers))
         'headers' => {!! u::printPhpValue($endpoint->headers, 8) !!},
@@ -43,7 +44,7 @@ $response = $client->{{ strtolower($endpoint->httpMethods[0]) }}(
     ]
 );
 @else
-$response = $client->{{ strtolower($endpoint->httpMethods[0]) }}('{{ rtrim($baseUrl, '/') . '/' . ltrim($endpoint->boundUri, '/') }}');
+$response = $client->{{ strtolower($endpoint->httpMethods[0]) }}($url);
 @endif
 $body = $response->getBody();
 print_r(json_decode((string) $body));

+ 1 - 1
resources/views/partials/example-requests/python.md.blade.php

@@ -6,7 +6,7 @@
 import requests
 import json
 
-url = '{{ rtrim($baseUrl, '/') }}/{{ $endpoint->boundUri }}'
+url = '{!! rtrim($baseUrl, '/') !!}/{{ $endpoint->boundUri }}'
 @if($endpoint->hasFiles() || (isset($endpoint->headers['Content-Type']) && $endpoint->headers['Content-Type'] == 'multipart/form-data' && count($endpoint->cleanBodyParameters)))
 files = {
 @foreach($endpoint->cleanBodyParameters as $parameter => $value)