در این آموزش از سایت وبنولوژی میخواهیم به شما طریقه ایجاد یک API در PHP از نوع REST را آموزش دهیم. به زبانی ساده و به همراه یک ویدیوی جذاب و به زبان فارسی! که در کمتر جایی خواهید یافت. REST API به شما امکان استفاده از سرویسهای اینترنتی را توسط یک برنامهٔ دیگر میدهد. به عبارتی دیگر برای ایجاد ارتباط بین برنامههای مختلف روی رایانههای مختلف که به شبکه متصل هستند، میتوان از REST API استفاده نمود.
REST چیست؟
این عبارت سرنام Representational State Transfer میباشد. REST ساختاری است که مجموعهای از قوانین را برای توسعه و استفاده از وب سرویسها بر بستر HTTP تعریف میکند. REST API هم ساده است و به سادگی اجرا میگردد، هم اینکه بدون وابستگی به سکویی قابلیت اجرایی با هر زبان برنامه نویسی را دارد.
نوعی دیگر از وب سرویس SOAP نام دارد که سرنام عبارت Simple Object Access Protocol است و توسط مایکروسافت توسعه داده شده.
REST API چطور کار میکند؟
درخواستهای REST مرتبط با عملیات چهارگانهٔ CRUD یعنی Create, Read, Update, Delete در پایگاه داده است. REST از درخواستهای GET, POST, PUT و DELETE بهره میگیرد.
GET برای دریافت اطلاعات که مشابه Readاست.
POST برای ایجاد رکورد جدید که مشابه Create است.
PUT برای به روزرسانی رکورد که شبیه Update است.
DELETE برای حذف رکورد که شبیه Delete است.
طریقه ساخت REST API در PHP
خروجی اصلی REST API به سبک JSON است و ما هم از همین فرمت برای ایجاد ارتباط با API مان استفاده میکنیم. کل این آموزش به دو مرحله تقسیم میگردد:
ایجاد REST API برای ارسال اطلاعات (سرویس دهنده)
استفاده از REST API برای دریافت اطلاعات (سرویس گیرنده)
راه اندازی REST API
در این مرحله کارهایی که صورت میپذیرد شامل موارد زیر میباشد:
ساخت پایگاه داده MySQL و جدول درون آن
ایجاد اتصال به پایگاه داده با PHP
ساخت سند REST API با PHP
پایگاه داده را هم میتوان از طریق phpMyAdmin از کنترل پنل ایجاد کرد. هم با یک دستور SQL ساده بدین ترتیب:
CREATE DATABASE phpapi;
یک جدول هم باید درون این پایگاه داده ایجاد کرد که دستورات SQL زیر چاره نیاز ماست:
CREATE TABLE IF NOT EXISTS `transactions` ( `id` int(20) NOT NULL AUTO_INCREMENT, `order_id` int(50) NOT NULL, `amount` decimal(9,2) NOT NULL, `response_code` int(10) NOT NULL, `response_desc` varchar(50) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `order_id` (`order_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
حالا باید ایجاد ارتباط با دیتابیس را ایجاد کنیم. روی هاست یک سند با نام db.php میسازیم. کدهای زیر را درون آن قرار میدهیم. اطلاعات اتصال به دیتابیس را با موارد حقیقی آنها جایگزین کنید.
<?php // Enter your Host, username, password, database below. $con = mysqli_connect("localhost","db_username","db_password","phpapi"); if (mysqli_connect_errno()){ echo "Failed to connect to MySQL: " . mysqli_connect_error(); die(); } ?>
یک سند دیگر هم با نام api.php ایجاد میکنیم که برای ایجاد ارتباط با دیتابیس به کار میرود. کدهای زیر را درون آن قرار میدهیم.
این سند درخواستها را به صورت GET میگیرد و نتیجه با فرمت JSON بر میگرداند. ما همهٔ این اسناد را در پوشه ای با نام rest ایجاد کردیم. پس ساختار URL درخواست از API به این صورت خواهد بود:
http://localhost/rest/api.php?order_id=15478959
اگر یک چنین id ای در دیتابیس وجود داشته باشد، نتیجه زیر بر خواهد گشت.
اما URL ای که در بالا استفاده شد چندان کاربرپسند نیست. پس بهتر است که با کد .htaccess آن را اصلاح کنیم. این دو خط را در سند .htaccess در پوشه rest میگذاریم. اگر یک چنین سندی نیست آن را ایجاد کنید.
RewriteEngine On # Turn on the rewriting engine RewriteRule ^api/([0-9a-zA-Z_-]*)$ api.php?order_id=$1 [NC,L]
حالا همان نشانی بالا با ساختار زیر هم قابل دسترس است.
http://localhost/rest/api/15478959
تا اینجای کار ما REST API را ایجاد کردیم. حالا در ادامهٔ کار میخواهیم یک برنامهٔ دیگر بسازیم که با این API ارتباط برقرار نماید.
استفاده از REST API
کارهایی که در این مرحله انجام میپذیرد شامل:
ساخت یک سند Index با فرم HTML
دریافت رکوردها بواسطهٔ CURL
پس ما در اینجا یک پوشهٔ دیگر میسازیم. حالا این پوشه میتواند روی یک هاست دیگر باشد. یک سند index.htm ساخته و محتوای زیر را درون آن قرار میدهیم.
اگر با مرورگر به نشانی فرم اینترنتی رفته و یک order_id وارد کنید که همان رکورد در پایگاه داده وجود داشته باشد، یک نتیجهٔ پر به شما برگردانده خواهد شد. اما اگر چنین رکوردی در دیتابیس موجود نباشد، هیچ چیزی برگردانده نخواهد شد.
جمع بندی
این از روال ساخت REST API در PHP بود. توضیحات بیشتر را در ویدیویی که در همین صفحه خدمت شما تقدیم کردیم گفته شده. با دیدن این فیلم به راحتی میتوانید از همهٔ جوانب کار این کدهای سر در بیاورید. امیدوارم که این آموزش برنامه نویسی هم برای شما جذاب بوده باشد.