مدیریت هوشمند نرخ ارز و طلا
بهروزرسانی لحظهای قیمتها، پایش بازار و تنظیم کارمزدها
🎛️ مانیتورینگ و وضعیت فعلی داراییها
نمایش بر اساس آخرین تغییراتدلار آمریکا
USD / IRRیورو اروپا
EUR / IRRتتر (دلار دیجیتال)
USDT / IRRدرهم امارات
AED / IRR🛠️ راهنمای گام به گام اتصال به بکاند
پوشه app/Services را ساخته و فایل سرویس را ایجاد کنید. از آنجا که این دایرکتوری جدید است، حتماً دستور composer dump-autoload را در ترمینال بسپارید تا کلاس توسط لاراول شناسایی شود؛ سپس متد getRates() را توسعه دهید.
در ترمینال دستور فوق را اجرا کنید تا کنترلر ساخته شود. سپس در فایل api.php روت نرخها را از نوع GET تنظیم کنید. همچنین روت نمایش فرانت را در web.php قرار دهید تا کاربران به صفحه دسترسی داشته باشند.
در بخش کلاینت، تابع مدرن و ناهمگام loadRates() به صورت خودکار با لود صفحه اجرا میشود. این تابع با ساختار async/await و متد نیتیو fetch، یک درخواست مستقیم به روت /api/rate فرستاده و دیتای خروجی را دریافت میکند.
در نهایت، اسکریپت با متد toLocaleString('fa-IR') قیمتهای عددی خام را به فرمت پولی با اعداد فارسی تبدیل میکند و شناسه ارزها مثل usd-price، درصد تغییرات و زمان دقیق بروزرسانی دریافتی از ایپیآی را مستقیماً درون تگهای مشخصشده رندر میکند.
برای تزریق صحیح دادهها توسط اسکریپت لودر، شناسه (ID) هر المان در لایه فرانتاندر باید منطبق با کدهای جاوااسکریپت نامگذاری شود؛ به عنوان مثال شناسههای منحصربهفردِ usd-price و usd-time در باکس گرید دلار، تضمینکننده نمایش داینامیک اطلاعات دریافتی بدون به هم ریختن استایل ظاهری کامپوننتها هستند.
💻 پیادهسازی نمونه کدهای سمت سرور (Laravel)
کدهای خام ساختار منطقی بکاندnamespace App\Services; use Illuminate\Support\Facades\Http; class RateService { public function getRates() { $response = Http::acceptJson()->get( 'https://Api.BrsApi.ir/Market/Gold_Currency.php?key=BBc6SfvSC7ynafEsVqeJfKKxsPtl4j64' ); $currencies = $response->json()['currency']; $crypto = $response->json()['cryptocurrency']; $usdt = collect($crypto)->firstWhere('symbol', 'USDT'); $symbols = ['USD', 'EUR', 'AED', 'TRY']; return [ 'usd' => collect($currencies)->firstWhere('symbol', 'USD'), 'eur' => collect($currencies)->firstWhere('symbol', 'EUR'), 'aed' => collect($currencies)->firstWhere('symbol', 'AED'), 'try' => collect($currencies)->firstWhere('symbol', 'TRY'), 'usdt' => collect($crypto)->firstWhere('symbol', 'USDT'), ]; } }