OpenPlatformController.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace App\Http\Controllers\API;
  3. use App\Http\Controllers\Controller;
  4. use GuzzleHttp\Client;
  5. use GuzzleHttp\Exception\ClientException;
  6. use Illuminate\Http\Request;
  7. class OpenPlatformController extends Controller
  8. {
  9. public function proxy(Request $request)
  10. {
  11. $client = new Client();
  12. $path = $request->get('path');
  13. $targetUrl = env('OPEN_PLATFORM_URL') . $path;
  14. $method = $request->getMethod();
  15. $headers = $request->headers->all();
  16. $body = $request->getContent();
  17. try {
  18. $response = $client->request($method, $targetUrl, [
  19. 'headers' => $headers,
  20. 'body' => $body,
  21. 'auth' => [
  22. env('OPEN_PLATFORM_USERNAME'),
  23. env('OPEN_PLATFORM_PASSWORD')
  24. ]
  25. ]);
  26. $content = json_decode($response->getBody()->getContents(), true);
  27. return $this->success(['data' => $content['data']]);
  28. } catch (ClientException $e) {
  29. $response = $e->getResponse();
  30. $content = json_decode($response->getBody()->getContents(), true);
  31. return $this->badRequest($content['message']);
  32. }
  33. }
  34. }