สำหรับโครงการ PHP ใด ๆ คุณอาจต้องการใช้ GuzzleHTTP เพื่อส่งคำขอ ล่อมีเอกสารที่ดีมากคุณสามารถตรวจสอบได้ที่นี่ ฉันแค่อยากจะบอกว่าคุณอาจต้องการรวมการใช้งานระดับไคลเอนต์ของ Guzzle ในส่วนกลางของโครงการ Laravel ของคุณ (ตัวอย่างเช่นลักษณะ) แทนที่จะเป็นการสร้างอินสแตนซ์ไคลเอนต์บนตัวควบคุมและส่วนประกอบหลายตัวของ Laravel และคำแนะนำตอบกลับ)
ฉันสร้างลักษณะนิสัยที่คุณสามารถพยายามที่จะใช้ซึ่งจะช่วยให้คุณสามารถส่งคำขอจากองค์ประกอบของโครงการ Laravel ของคุณใด ๆ 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;
}
}
สังเกตเห็นว่าคุณลักษณะนี้สามารถจัดการกับไฟล์ที่ส่งได้
หากคุณต้องการรายละเอียดเพิ่มเติมเกี่ยวกับลักษณะนี้และบางสิ่งอื่น ๆ ที่จะบูรณาการลักษณะนี้จะ Laravel ตรวจสอบนี้บทความ นอกจากนี้หากสนใจในหัวข้อนี้หรือต้องการความช่วยเหลือที่สำคัญคุณสามารถเรียนหลักสูตรของฉันซึ่งแนะนำคุณในกระบวนการทั้งหมด
ฉันหวังว่ามันจะช่วยคุณทุกคน
ด้วยความปรารถนาดี :)