ویرگول
ورودثبت نام
شرکت محافظ اسرار نهان آریا
شرکت محافظ اسرار نهان آریاسخت کار نکنید ، هوشمندانه کاره کنید . ( البته خودم خیلی به این موضوع اهمیت نمیدم ?? )
شرکت محافظ اسرار نهان آریا
شرکت محافظ اسرار نهان آریا
خواندن ۳ دقیقه·۳ سال پیش

Http Client در لاراول

سلااام
امروز آموزشمون درباره Http Client یا همون عمل Ajax در فریمورک لاراول هست.
خب دوستان لاراول از نسخه های 5 به اینور سرویس http client رو روش بیشتر وقت گذاشت .
و فقط یه چمله اضافه کنم http Client تو لاراول مثل fetch تو جاوا اسکریپت میمونه اینو فقط برای سئ**و گفتم ? .



خب آموزشو شروع کنیم ....
عرضم به حضورتون متد های کلاس Http از فَساد و ساپورت ایمپورت میشن .

use Illuminate\Support\Facades\Http;

فقط اینکه به صورت پیش فرض رو پکیجتون هست .
ولی اگه نبود میتونید از کامپوزر استفاده کنید و نصبش کنید .اگه لاراول نصب کردید که وارد فولدر project شید و کد زیر رو برای نصب، بزنید وگرنه برای نصب لاراول با خط پایینیشو بزنیم . ( اشتباه شد خط بالا برای نصب لاراول ، خط پایین برای نصب پکیج برای اطمینان )

#laravel installer composer global require laravel/installer laravel new project # pakage install composer require guzzlehttp/guzzle

خب اولین چیزی باهاش کار میکنیم دستور get هست .

درخواست های get در Http Client :

use Illuminate\Support\Facades\Http; $response = Http::get('http://example.com');

حالا هر خروجی که میتونیم از response$ بگیریم رو تو کد باکس پایین براتون گذاشتم .

$response->body() : string; $response->json($key = null) : array|mixed; $response->object() : object; $response->collect($key = null) : Illuminate\Support\Collection; $response->status() : int; $response->ok() : bool; $response->successful() : bool; $response->redirect(): bool; $response->failed() : bool; $response->serverError() : bool; $response->clientError() : bool; $response->header($header) : string; $response->headers() : array;

اگه با JsonPlaceholder کار کرده باشید میدونید شما میتونید فقط یه سری فیلد هارو دریافت کنید برای مثال از آدرس jsonplaceholder مقادیر. به شکل زیر بگیرید .

[{"id": 1,"name": "Leanne Graham","username": "Bret","email": "[email protected]","address": {"street": "Kulas Light","suite": "Apt. 556","city": "Gwenborough","zipcode": "92998-3874","geo": {"lat": "-37.3159","lng": "81.1496"}},"phone": "1-770-736-8031 x56442","website": "hildegard.org","company": {"name": "Romaguera-Crona","catchPhrase": "Multi-layered client-server neural-net","bs": "harness real-time e-markets"}},{"id": 2,"name": "Ervin Howell","username": "Antonette","email": "[email protected]","address": {"street": "Victor Plains","suite": "Suite 879","city": "Wisokyburgh","zipcode": "90566-7771","geo": {"lat": "-43.9509","lng": "-34.4618"}},"phone": "010-692-6593 x09125","website": "anastasia.net","company": {"name": "Deckow-Crist","catchPhrase": "Proactive didactic contingency","bs": "synergize scalable supply-chains"}},{"id": 3,"name": "Clementine Bauch","username": "Samantha","email": "[email protected]","address": {"street": "Douglas Extension","suite": "Suite 847","city": "McKenziehaven","zipcode": "59590-4157","geo": {"lat": "-68.6102","lng": "-47.0653"}},"phone": "1-463-123-4447","website": "ramiro.info","company": {"name": "Romaguera-Jacobson","catchPhrase": "Face to face bifurcated interface","bs": "e-enable strategic applications"}}]

و شما میتونید همینجا درخواست هاتونو غربال(محدود) کنید که اینا دیگه برمیگرده به RESTFUL API ها که باید دربارش بدونید ، حالا شما میخواید name بزارید ،email رو بزارید، username رو بزارید ، adress یا company رو بزارید که البته اینجا شما میتونید یه ربعد دیگه هم پیش برید مثلا تو adress میتونید فقط street یا city رو دریافت کنید .
خروجی مثال بالا به این شکل میشه .

$response = Http::get('http://example.com/users/1')['name']; // response [ "Leanne Graham","Ervin Howell" ,"Clementine Bauch"]

و شما میتونید همینجا درخواست هاتونو غربال(محدود) کنید که اینا دیگه برمیگرده به RESTFUL API ها که باید دربارش بدونید ، حالا شما میخواید name بزارید ،email رو بزارید، username رو بزارید ، adress یا company رو بزارید کهالبته اینجا شما میتونید یه ربعد دیگه هم پیش برید مثلا تو adress میتونید فقط street یا city رو دریافت کنید .
خروجی مثال بالا به این شکل میشه .

$response = Http::get('http://example.com/users/1')['adress']; // response... [ ["street"=> "Douglas Extension","suite"=> "Suite 847","city"=> "McKenziehaven","zipcode"=> "59590-4157","geo"=> ["lat"=> "-68.6102","lng"=> "-47.0653"]] ,["street"=> "Douglas Extension","suite"=> "Suite 847","city"=> "McKenziehaven","zipcode"=> "59590-4157","geo"=> ["lat"=> "-68.6102","lng"=> "-47.0653"]] ,["street"=> "Douglas Extension","suite"=> "Suite 847","city"=> "McKenziehaven","zipcode"=> "59590-4157","geo"=> ["lat"=> "-68.6102","lng"=> "-47.0653"]]] // # مثال دو : بعد های داخلی $response = Http::get('http://example.com/users/1')['adress']['street']; // response... ['Douglas Extension 1','Douglas Extension 2 ',' Douglas Extension 3 ']

و اما...

تو درخواست های get اگر بخوایم Query Parametr ارسال کنیم متد یه قسمت دومی ( پارامتر ) هم داره که باید به صورت آرایه (json) بفرستید .

$response = Http::get('http://example.com/users', [ 'name' => 'Taylor',' page' => 1, ]);

درخواست های post در Http Client :

تو درخواست های پست داریم یحتمل ی سری دیتا رو میفرستیم که خب، باید در نظر گرفت متد post دو قسمته یکی url و دیگری body که ما باید به صورت آرایه(json) بفرستیمش .

$response = Http::post('http://example.com/users', [ 'name' => 'Steve', 'role' => 'Network Administrator', ]);


ده .



ن.ت : در صنعت تکنلوژی هر روزه شاهد ابداع راه و روش های راه های جدید هستیم ، در این پست library یا افزونه HttpClient یاد گرفیتم . اما مبحثمون بیشتر از این حرفاست .
و آموزش گسترده تری در یوتیوبمون گذاشته شده .

من مهدی هستم میتونی MrMDCode صدام کنی ?


۱
۰
شرکت محافظ اسرار نهان آریا
شرکت محافظ اسرار نهان آریا
سخت کار نکنید ، هوشمندانه کاره کنید . ( البته خودم خیلی به این موضوع اهمیت نمیدم ?? )
شاید از این پست‌ها خوشتان بیاید