Chắc chắn, đối với bất kỳ dự án PHP nào, bạn có thể muốn sử dụng GuheadsHTTP để gửi yêu cầu. Guheads có tài liệu rất hay bạn có thể kiểm tra ở đây . Tôi chỉ muốn nói rằng, có lẽ bạn muốn tập trung vào việc sử dụng lớp Máy khách của khách hàng trong bất kỳ thành phần nào trong dự án Laravel của bạn (ví dụ như một đặc điểm) thay vì tạo các phiên bản Máy khách trên một số bộ điều khiển và các thành phần của Laravel (như nhiều bài viết và trả lời đề nghị).
Tôi đã tạo một đặc điểm mà bạn có thể thử sử dụng, cho phép bạn gửi yêu cầu từ bất kỳ thành phần nào trong dự án Laravel của bạn, chỉ cần sử dụng nó và gọi tới makeRequest
.
namespace App\Traits;
use GuzzleHttp\Client;
trait ConsumesExternalServices
{
/**
* Send a request to any service
* @return string
*/
public function makeRequest($method, $requestUrl, $queryParams = [], $formParams = [], $headers = [], $hasFile = false)
{
$client = new Client([
'base_uri' => $this->baseUri,
]);
$bodyType = 'form_params';
if ($hasFile) {
$bodyType = 'multipart';
$multipart = [];
foreach ($formParams as $name => $contents) {
$multipart[] = [
'name' => $name,
'contents' => $contents
];
}
}
$response = $client->request($method, $requestUrl, [
'query' => $queryParams,
$bodyType => $hasFile ? $multipart : $formParams,
'headers' => $headers,
]);
$response = $response->getBody()->getContents();
return $response;
}
}
Lưu ý đặc điểm này thậm chí có thể xử lý các tập tin gửi.
Nếu bạn muốn biết thêm chi tiết về đặc điểm này và một số nội dung khác để tích hợp đặc điểm này với Laravel, hãy kiểm tra bài viết này . Ngoài ra, nếu quan tâm đến chủ đề này hoặc cần hỗ trợ lớn, bạn có thể tham gia khóa học của tôi hướng dẫn bạn trong toàn bộ quá trình.
Tôi hy vọng nó sẽ giúp tất cả các bạn.
Lời chúc tốt nhất :)