نحوه استفاده از POST با guzzlehttp/guzzle در لاراول

نحوه استفاده از POST با guzzlehttp/guzzle در لاراول
نحوه استفاده از POST با guzzlehttp/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 درخواست از داده‌های فیک ساخته شده، استفاده کنید.

{
    &quotname&quot: &quotbhathiya&quot,
    &quotjob&quot: &quotASE&quot
}

همانطور که در کد بالا مشاهده می شود، هنگامی که کد پاسخ 201 باشد، به معنای این است که همه چیز درست پیش رفته است. ما با موفقیت داده های جدید را به URL شخص ثالث ارسال کردیم و پاسخی دریافت می کنیم دهد که پروژه با موفقیت انجام شده است. به جای استفاده از Postman، می توانیم تماس های API را مستقیماً از برنامه خود انجام دهیم. حالا شما می دانید چگونه از guzzle در Laravel استفاده کنید.

دستور composer show guzzlehttp/guzzle نسخه guzzle را نشان می دهد

POST - ارسال داده ها به سرور با هدف ایجاد یا به روزرسانی در سرور.

artisan ابزار رابط خط فرمانی است که با چارچوب PHP Laravel همراه است. این ابزار به توسعه دهندگان مجموعه ای از دستورات پیش تعریف شده برای مدیریت جوانب مختلف برنامه های Laravel خود را فراهم می کند.

در این مقاله درباره‌ی ``نحوه استفاده از POST با guzzlehttp/guzzle در لاراول`` صحبت کردیم. امیدواریم که این مقاله مورد استفاده شما دوستان عزیز قرار گرفته باشد. اگر هرگونه سوالی در خصوص این مقاله داشتید میتوانید در قسمت نظرات همین مقاله با ما در میان بگذارید.


منبع: وبسایت میموک