Laravel 项目接入黄金价格API示例
**
在 Laravel 项目中,需要实时获取黄金价格进行展示或分析,可以通过服务端请求 API 来实现。下面给出一个示例,展示如何获取并存储数据。
接口请求示例
使用 Laravel 的 Http 客户端请求接口,并将返回数据存入数据库。像 AllTick API 提供的行情接口,就可以方便获取实时黄金价格:
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Http;
use App\Models\GoldPrice;
class FetchGoldPrice extends Command
{
protected $signature = 'fetch:goldprice';
protected $description = '获取最新黄金价格并存储';
public function handle()
{
$response = Http::get('https://apis.alltick.co/market/gold/latest', [
'symbol' => 'XAUUSD',
]);
if ($response->ok()) {
$data = $response->json();
GoldPrice::create([
'price' => $data['price'],
'currency' => $data['currency'],
'timestamp' => now(),
]);
$this->info('黄金价格更新完成:' . $data['price']);
} else {
$this->error('获取黄金价格失败');
}
}
}
通过 Laravel 定时任务调度这个命令,可以保持数据相对实时。
数据展示方式
在 Blade 模板中,可以用表格展示历史价格:
<table class="table-auto border-collapse border border-gray-300">
<thead>
<tr>
<th class="border border-gray-300 px-4 py-2">时间</th>
<th class="border border-gray-300 px-4 py-2">价格(USD)</th>
</tr>
</thead>
<tbody>
@foreach($prices as $price)
<tr>
<td class="border border-gray-300 px-4 py-2">{{ $price->timestamp }}</td>
<td class="border border-gray-300 px-4 py-2">{{ $price->price }}</td>
</tr>
@endforeach
</tbody>
</table>
结合定时任务或 WebSocket 推送,前端数据显示可以接近实时。
使用提示
API 地址可根据官方文档调整。
数据可以存数据库,也可直接返回前端使用。
对高频数据需求,可结合队列和缓存优化性能。
**
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: