ساخت API برای نرخ ارز با PHP
در دنیای امروز، دسترسی سریع و آسان به اطلاعات نرخ ارز برای بسیاری از کسبوکارها و برنامههای کاربردی ضروری است. یک API (Application Programming Interface) میتواند این امکان را فراهم کند تا برنامهها و وبسایتها به طور خودکار و بدون نیاز به دخالت دستی، نرخ ارز را دریافت و استفاده کنند. این مقاله به بررسی گام به گام ساخت یک API ساده برای نرخ ارز با استفاده از زبان برنامهنویسی PHP میپردازد.
پیشنیازها
قبل از شروع، اطمینان حاصل کنید که پیشنیازهای زیر را دارید:
- یک سرور وب با PHP نصب شده (مانند Apache یا Nginx)
- دسترسی به یک پایگاه داده (مانند MySQL یا PostgreSQL)
- دانش پایه PHP و SQL
مرحله اول: طراحی پایگاه داده
برای ذخیره نرخ ارز، به یک پایگاه داده نیاز داریم. یک جدول ساده با ساختار زیر میتواند مناسب باشد:
CREATE TABLE rates (
id INT AUTO_INCREMENT PRIMARY KEY,
currency_pair VARCHAR(3) NOT NULL,
rate DECIMAL(10, 6) NOT NULL,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
در این جدول:
id: شناسه یکتا برای هر رکوردcurrency_pair: جفت ارز (مثلاً USD/IRR)rate: نرخ ارزtimestamp: زمان ثبت نرخ ارز
مرحله دوم: دریافت نرخ ارز
برای دریافت نرخ ارز، میتوان از منابع مختلفی استفاده کرد. در این مثال، فرض میکنیم که نرخ ارز را از یک منبع خارجی (مانند یک وبسایت یا سرویس دیگر) دریافت میکنیم. برای سادگی، فرض میکنیم که یک تابع به نام getExchangeRate وجود دارد که نرخ ارز را برای یک جفت ارز مشخص برمیگرداند.
function getExchangeRate($currencyPair) {
// در اینجا منطق دریافت نرخ ارز از منبع خارجی قرار میگیرد
// این تابع باید نرخ ارز را به صورت یک عدد اعشاری برگرداند
// برای مثال:
if ($currencyPair == 'USD/IRR') {
return 50000; // نرخ فرضی
} elseif ($currencyPair == 'EUR/IRR') {
return 55000; // نرخ فرضی
} else {
return null; // نرخ ارز برای این جفت ارز موجود نیست
}
}
مرحله سوم: ذخیره نرخ ارز در پایگاه داده
پس از دریافت نرخ ارز، باید آن را در پایگاه داده ذخیره کنیم. یک تابع به نام saveExchangeRate میتواند این کار را انجام دهد:
function saveExchangeRate($currencyPair, $rate) {
// اتصال به پایگاه داده
$conn = new mysqli("localhost", "username", "password", "database");
// بررسی اتصال
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// آمادهسازی کوئری
$sql = "INSERT INTO rates (currency_pair, rate) VALUES ('$currencyPair', '$rate')";
// اجرای کوئری
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "
" . $conn->error;
}
// بستن اتصال
$conn->close();
}
توجه داشته باشید که باید اطلاعات اتصال به پایگاه داده (username، password، database) را با مقادیر واقعی جایگزین کنید.
مرحله چهارم: ایجاد API
حالا میتوانیم API را ایجاد کنیم. API باید بتواند درخواستهای HTTP را دریافت کند و نرخ ارز را بر اساس جفت ارز مشخص شده برگرداند. برای این کار، میتوان از یک فایل PHP به نام api.php استفاده کرد:
connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// دریافت جفت ارز از پارامتر GET
$currencyPair = $_GET['currency_pair'];
// بررسی وجود جفت ارز
if (empty($currencyPair)) {
http_response_code(400);
echo json_encode(['error' => 'Currency pair is required']);
exit;
}
// دریافت نرخ ارز از پایگاه داده
$sql = "SELECT rate FROM rates WHERE currency_pair = '$currencyPair' ORDER BY timestamp DESC LIMIT 1";
$result = $conn->query($sql);
// بررسی نتیجه
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
$rate = $row['rate'];
echo json_encode(['currency_pair' => $currencyPair, 'rate' => $rate]);
} else {
http_response_code(404);
echo json_encode(['error' => 'Currency pair not found']);
}
// بستن اتصال
$conn->close();
?>
در این فایل:
header('Content-Type: application/json');: تنظیم نوع محتوای پاسخ به JSON$_GET['currency_pair']: دریافت جفت ارز از پارامتر GET$sql: کوئری SQL برای دریافت نرخ ارز از پایگاه داده$result->fetch_assoc(): دریافت نتیجه کوئری به صورت یک آرایهjson_encode(): تبدیل آرایه PHP به JSONhttp_response_code(): تنظیم کد وضعیت HTTP
مرحله پنجم: تست API
برای تست API، میتوانید از یک مرورگر وب یا یک ابزار مانند Postman استفاده کنید. برای مثال، برای دریافت نرخ ارز USD/IRR، میتوانید به آدرس زیر در مرورگر وب خود بروید:
http://your-server/api.php?currency_pair=USD/IRR
اگر همه چیز به درستی کار کند، باید یک پاسخ JSON مشابه زیر دریافت کنید:
{
"currency_pair": "USD/IRR",
"rate": 50000
}
بهبود API
API که در این مقاله ساخته شد، یک API ساده است و میتوان آن را به روشهای مختلفی بهبود داد:
- اعتبارسنجی ورودی: اطمینان حاصل کنید که جفت ارز ورودی معتبر است.
- ذخیرهسازی Cache: برای کاهش بار روی پایگاه داده، میتوانید نرخ ارز را در Cache ذخیره کنید.
- امنیت: برای محافظت از API در برابر حملات، میتوانید از روشهای امنیتی مانند احراز هویت و مجوز استفاده کنید.
- مستندسازی: یک مستندات کامل برای API خود ایجاد کنید تا توسعهدهندگان دیگر بتوانند به راحتی از آن استفاده کنند.
- مدیریت خطا: پیامهای خطای دقیقتر و مفیدتر ارائه دهید.
- استفاده از یک فریمورک: استفاده از یک فریمورک PHP مانند Laravel یا Symfony میتواند توسعه API را آسانتر و سریعتر کند.
نتیجهگیری
ساخت یک API برای نرخ ارز با PHP یک فرآیند نسبتاً ساده است. با استفاده از مراحل توضیح داده شده در این مقاله، میتوانید یک API کاربردی ایجاد کنید که به برنامهها و وبسایتهای دیگر امکان دسترسی به نرخ ارز را فراهم میکند. با بهبود API و افزودن ویژگیهای بیشتر، میتوانید آن را به یک ابزار قدرتمند برای کسبوکار خود تبدیل کنید.
