python.blade.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. @php
  2. use Knuckles\Scribe\Tools\WritingUtils as u;
  3. /** @var Knuckles\Camel\Output\OutputEndpointData $endpoint */
  4. @endphp
  5. <pre><code class="language-python">
  6. import requests
  7. import json
  8. url = '{{ rtrim($baseUrl, '/') }}/{{ $endpoint->boundUri }}'
  9. @if($endpoint->hasFiles())
  10. files = {
  11. @foreach($endpoint->fileParameters as $parameter => $value)
  12. @foreach(u::getParameterNamesAndValuesForFormData($parameter, $value) as $key => $file)
  13. '{!! $key !!}': open('{!! $file->path() !!}', 'rb')@if(!($loop->parent->last)),
  14. @endif
  15. @endforeach
  16. @endforeach
  17. }
  18. @endif
  19. @if(count($endpoint->cleanBodyParameters))
  20. payload = {!! json_encode($endpoint->cleanBodyParameters, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) !!}
  21. @endif
  22. @if(count($endpoint->cleanQueryParameters))
  23. params = {!! u::printQueryParamsAsKeyValue($endpoint->cleanQueryParameters, "'", ":", 2, "{}") !!}
  24. @endif
  25. @if(!empty($endpoint->headers))
  26. headers = {
  27. @foreach($endpoint->headers as $header => $value)
  28. '{{$header}}': '{{$value}}'@if(!($loop->last)),
  29. @endif
  30. @endforeach
  31. }
  32. @endif
  33. @php
  34. $optionalArguments = [];
  35. if (count($endpoint->headers)) $optionalArguments[] = "headers=headers";
  36. if (count($endpoint->fileParameters)) $optionalArguments[] = "files=files";
  37. if (count($endpoint->cleanBodyParameters)) $optionalArguments[] = (count($endpoint->fileParameters) ? "data=payload" : "json=payload");
  38. if (count($endpoint->cleanQueryParameters)) $optionalArguments[] = "params=params";
  39. $optionalArguments = implode(', ',$optionalArguments);
  40. @endphp
  41. response = requests.request('{{$endpoint->httpMethods[0]}}', url, {{ $optionalArguments }})
  42. response.json()
  43. </code></pre>