Secara pasti, untuk proyek PHP apa pun, Anda mungkin ingin menggunakan GuzzleHTTP untuk mengirim permintaan. Guzzle memiliki dokumentasi yang sangat bagus yang dapat Anda periksa di sini . Saya hanya ingin mengatakan itu, Anda mungkin ingin memusatkan penggunaan kelas Klien Guzzle dalam komponen apa pun dari proyek Laravel Anda (misalnya suatu sifat) alih-alih membuat mesin virtual Klien pada beberapa pengontrol dan komponen Laravel (karena banyak artikel dan balasan menyarankan).
Saya membuat sifat yang dapat Anda coba gunakan, yang memungkinkan Anda mengirim permintaan dari setiap komponen proyek Laravel Anda, cukup menggunakannya dan menelepon ke 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;
}
}
Perhatikan sifat ini bahkan dapat menangani pengiriman file.
Jika Anda ingin detail lebih lanjut tentang sifat ini dan beberapa hal lain untuk mengintegrasikan sifat ini ke Laravel, periksa artikel ini . Selain itu, jika tertarik dengan topik ini atau membutuhkan bantuan besar, Anda dapat mengambil kursus saya yang memandu Anda dalam keseluruhan proses.
Saya harap ini membantu Anda semua.
Semoga sukses :)