Guzzle چیست؟
Guzzle یک کتابخانه کلاینت HTTP PHP است که ارسال درخواستهای HTTP به سرورهای وب و تعامل با API ها را آسان میکند. این کتابخانه وظایفی مانند ارسال درخواستهای GET و POST، پردازش دادههای پاسخ و مدیریت هدرهای درخواست را ساده میکند. Guzzle به طور معمول در برنامههای PHP برای ارتباط با سرویسهای خارجی از طریق اینترنت استفاده میشود.
هدف من این است که یک برنامه Laravel توسعه دهم، آن را در localhost اجرا کنم و سپس از Postman برای ارسال درخواستهای API و دریافت پاسخها از یک برنامه شخص ثالث استفاده کنم.
Guzzle چیست؟
Guzzle یک کتابخانه کلاینت HTTP PHP است که ارسال درخواستهای HTTP به سرورهای وب و تعامل با API ها را آسان میکند. این کتابخانه وظایفی مانند ارسال درخواستهای GET و POST، پردازش دادههای پاسخ و مدیریت هدرهای درخواست را ساده میکند. Guzzle به طور معمول در برنامههای PHP برای ارتباط با سرویسهای خارجی از طریق اینترنت استفاده میشود.
هدف من این است که یک برنامه Laravel توسعه دهم، آن را در localhost اجرا کنم و سپس از Postman برای ارسال درخواستهای API و دریافت پاسخها از یک برنامه شخص ثالث استفاده کنم.
مرحله 1. ایجاد یک پروژه لاراول
با استفاده از دستور مربوطه، یک پروژه جدید (در اینجا projectguzzel نامیده شده است) ایجاد کنید.
laravel new projectguzzel
سپس به پوشه مربوطه بروید.
cd projectguzze
سپس پروژه را در ویژوال استودیو کد (vscode) بارگذاری کنید.
code .
مرحله 2. نصب Guzzle در پروژه
در یک ترمینال جدید، کتابخانه Guzzle HTTP client را نصب کنید.
composer require guzzlehttp/guzzle
مرحله ۳: ایجاد یک Controller برای پردازش درخواست
php artisan make:controller PostController
به Controller ایجاد شده بروید (در اینجا PostController نامیده شده است)
app > Http > Controllers > PostController
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
class PostController extends Controller
{
public function postRequest(Request $request)
{
//Create Client object to deal with
$client = new Client();
// Define the request parameters
$url = 'https://reqres.in/api/users';
$headers = [
'Content-Type' => 'application/json',
];
$data = [
'name' => $request->input('name'),
'job' => $request->input('job'),
];
// POST request using the created object
$postResponse = $client->post($url, [
'headers' => $headers,
'json' => $data,
]);
// Get the response code
$responseCode = $postResponse->getStatusCode();
return response()->json(['response_code' => $responseCode]);
}
}
استفاده از کتابخانه Guzzle الزامی است.
use GuzzleHttp\Client;
به عنوان یک API خارجی، از https://reqres.in/api/users استفاده کردیم.
مرحله ۴: ایجاد Route برای متد ایجاد شده
به پوشه API بروید.
routes > api.php
Route::middleware('auth:sanctum')->get('/user', function (Request $request)
{
return $request->user();
});
//add the route
Route::post('postdata', [PostController::class, 'postRequest']);
اضافه کردن Controller مربوطه به api.php الزامی است.
use App\Http\Controllers\PostController;
حالا ما در سمت سرور لاراول آماده هستیم. پروژه را در localhost اجرا کنید.
php artisan serve
مرحله ۵: ایجاد یک درخواست POST با استفاده از postman
در postman به مسیر زیر درخواست بفرستید.
http://localhost:8000/api/postdata
همچنین در body درخواست از دادههای فیک ساخته شده، استفاده کنید.
{
"name": "bhathiya",
"job": "ASE"
}
همانطور که در کد بالا مشاهده می شود، هنگامی که کد پاسخ 201 باشد، به معنای این است که همه چیز درست پیش رفته است. ما با موفقیت داده های جدید را به URL شخص ثالث ارسال کردیم و پاسخی دریافت می کنیم دهد که پروژه با موفقیت انجام شده است. به جای استفاده از Postman، می توانیم تماس های API را مستقیماً از برنامه خود انجام دهیم. حالا شما می دانید چگونه از guzzle در Laravel استفاده کنید.
دستور composer show guzzlehttp/guzzle نسخه guzzle را نشان می دهد
POST - ارسال داده ها به سرور با هدف ایجاد یا به روزرسانی در سرور.
artisan ابزار رابط خط فرمانی است که با چارچوب PHP Laravel همراه است. این ابزار به توسعه دهندگان مجموعه ای از دستورات پیش تعریف شده برای مدیریت جوانب مختلف برنامه های Laravel خود را فراهم می کند.
در این مقاله دربارهی ``نحوه استفاده از POST با guzzlehttp/guzzle در لاراول`` صحبت کردیم. امیدواریم که این مقاله مورد استفاده شما دوستان عزیز قرار گرفته باشد. اگر هرگونه سوالی در خصوص این مقاله داشتید میتوانید در قسمت نظرات همین مقاله با ما در میان بگذارید.
منبع: linkedin