python.md.blade.php 2.1 KB

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