Kesinlikle, herhangi bir PHP projesi için, istekleri göndermek için GuzzleHTTP kullanmak isteyebilirsiniz. Guzzle burada kontrol edebileceğiniz çok güzel belgelere sahip . Sadece şunu söylemek istiyorum, Laravel projenizin herhangi bir bileşeninde (örneğin bir özellik) Client sınıf Guzzle kullanımını, Laravel'in çeşitli denetleyicileri ve bileşenlerinde İstemci örnekleri oluşturmak yerine merkezileştirmek istediğinizi söylemek istiyorum. ve cevaplar önermek).
Kullanmaya çalışabileceğiniz bir özellik oluşturdum, bu da Laravel projenizin herhangi bir bileşeninden, sadece onu kullanarak ve arayarak istek göndermenizi sağlar 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;
}
}
Bu özelliğin dosya gönderme işlemlerini bile gerçekleştirebileceğine dikkat edin.
Bu özellik hakkında daha fazla ayrıntı ve bu özelliği Laravel'e entegre etmek için bu makaleye bakın . Ayrıca, bu konuyla ilgileniyorsanız veya büyük yardıma ihtiyacınız varsa, tüm süreç boyunca size yol gösteren kursumu alabilirsiniz .
Umarım hepinize yardımcı olur.
En iyi dileklerimle :)