आज, मैं सबके साथ साझा करता हूं कि लारवेल में मल्टीपल एपीआई पर कॉल कैसे करें
अब हम वादा करते हैं कि क्लाइंट से एकाधिक एपीआई कॉल कर सकते हैं (vue, प्रतिक्रिया, js,...)। यदि आप Promise.all([...]) का उपयोग करते हैं, तो यह एकाधिक वादे लौटाता है
ठीक है, चलो मत जाओ
पहला, आप प्रोजेक्ट लारवेल 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', ]; });
जब आप यूआरएल का अनुरोध करते हैं: http://127.0.0.1/multiple-request, यह डेटा लौटाता है
ठीक है, या आप 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); });
डेटा लौटाएं :
लेख: HTTP अनुरोधों के साथ लारवेल में एकाधिक एपीआई
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3