"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > واجهة برمجة تطبيقات متعددة في Laravel مع طلبات HTTP

واجهة برمجة تطبيقات متعددة في Laravel مع طلبات HTTP

تم النشر بتاريخ 2024-08-18
تصفح:499

اليوم، أشارك الجميع كيفية الاتصال بواجهات برمجة التطبيقات المتعددة في Laravel
نعدك الآن بإمكانية استدعاء واجهات برمجة التطبيقات المتعددة من العميل (vue، React، js،...). إذا كنت تستخدم Promise.all([...])، فستُرجع وعودًا متعددة

حسنا، لنذهب

الأولى، يمكنك تثبيت مشروع Laravel 11

الثاني، يمكننا إعداده في web.php أو وحدة التحكم، الخدمات،..

مثال: أكتب كود في ملف web.php، ساعد في اختباره

use Illuminate\Support\Facades\Http;
use GuzzleHttp\Promise\Utils;
use GuzzleHttp\Exception\ConnectException;
use Illuminate\Http\Client\Pool;

Route::get('multiple-request', function() {
    $responses = Utils::all([
        'foo' => Http::async()->get('https://jsonplaceholder.typicode.com/todos/1')->then(function ($response) {
            // you can check data, after then return it
            return $response;
        }),
        'bar' => Http::async()->get('https://jsonplaceholder.typicode.com/todos/2')->then(function ($response) {
             // you can check data, after then return it
            return $response;
        }),
        'baz' => Http::async()->get('https://jsonplaceholder.typicode.com/todos/3')->then(function ($response) {
            // you can check data, after then return it
            return $response;
        }),
    ])->wait();

    // you need check data here
    $fooOk = $responses['foo']->ok();
    $barSuccessful = $responses['bar']->successful();
    $connectionFailed = $responses['baz'] instanceof ConnectException;

    return [
        'foo' => $responses['foo']->ok() ? $responses['foo']->json() : 'Request to foo failed',
        'bar' => $responses['bar']->successful() ? $responses['bar']->json() : 'Request to bar failed',
        'baz' => $responses['baz']->ok() ? $responses['baz']->json() : 'Request to baz failed',
    ];
});

عندما تطلب عنوان url: http://127.0.0.1/multiple-request، فإنه يعرض البيانات

Multiple API in Laravel with HTTP Requests

حسنًا، أو يمكنك استخدام Http::pool، طلب واجهة برمجة التطبيقات

Route::get('multiple-request-using-pool', function() {

        $responses = Http::pool(fn (Pool $pool) => [
            $pool->get('https://jsonplaceholder.typicode.com/todos/1'),
            $pool->get('https://jsonplaceholder.typicode.com/todos/2'),
            $pool->get('https://jsonplaceholder.typicode.com/todos/3'),
        ]);

        $responses[0]->ok();
        $responses[1]->successful();
        // Kiểm tra và lấy nội dung từ các phản hồi
        $data = [
            'todo_1' => $responses[0]->ok() ? $responses[0]->json() : 'Request to todo 1 failed',
            'todo_2' => $responses[1]->successful() ? $responses[1]->json() : 'Request to todo 2 failed',
            'todo_3' => $responses[2]->ok() ? $responses[2]->json() : 'Request to todo 3 failed',
        ];

        return response()->json($data);

});

إرجاع البيانات :

Multiple API in Laravel with HTTP Requests

المقال: واجهة برمجة تطبيقات متعددة في Laravel مع طلبات HTTP

بيان الافراج تم نشر هذه المقالة على: https://dev.to/skipperhoa/multiple-api-in-laravel-with-http-requests-3ml6?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3