ساخت وب سرویس RESTful در php

shape
shape
shape
shape
shape
shape
shape
shape

روش ایجاد API رست در پی اچ پی

در این مقاله قصد داریم در مورد ساخت وب سرویس RESTful در php توضیح دهیم

وب سرویس RESTful (یا REST مخفف Representational state transfer) یک سبک معماری است . وب سرویس هایی که از قوانین REST پیروی می کنند , سرویس های Restful هستند .

در سرویس های Restful , آدرس های URI برای دسترسی به منابع (resources) استفاده می شوند . در واژگان Restful در واقع ما داده ها (Data) و توابع (function) ها را resource می نامیم .

بنابراین داده و توابع مواردی هستند که ما توسط سرویس ها به آنها دسترسی پیدا میکنیم.

در اینترنت آموزش های زیادی برای ساخت وب سرویس RESTful وجود دارد ولی نهایتا هیچ یک از آنها حتی از یک قانون REST پیروی نمی کنند و از همان روش های oldSchool که درخواست به یک URL خام و دریافت خروجی آن بصورت داده json است, بهره می برند.!

در این آموزش, به شما نحوه ساخت وب سرویس RESTful در php را نشان می دهیم .

اینجا من از هیچ فریمورکی مثل لاراول (laravel) برای ساخت وب سرویس RESTful در php استفاده نمی کنم . بلکه فقط از php خام بهره می بریم.

بیشتر وقت ها ترجیح میدهم که کد های سفارشی را بدون نیاز به هیچ فریمورک خاصی پیاده سازی کنیم که این عمل مزایای خود را دارد .

مراحل ساخت وب سرویس RESTful در php

  • ساخت وب سرویس RESTful
  • با PHP خام , بدون استفاده از هیچ فریمورکی
  • الگوهای URL باید از قوانین REST پیروی کنند.
  • سرویس RESTful باید قابلیت پاسخ به درخواست ها در فرمت داده json و یا xml را داشته باشد.
  • باید طبق سناریو های مختلف قابلیت تفکیک کد وضعیت HTTP را داشته باشد.
  • قابلیت تشریح هدر های درخواست (Request Header) داشته باشد.
  • تست وب سرویس RESTful توسط کلاینت REST

مثال ساخت وب سرویس RESTful در php

کد php زیر یک کلاس اصلی برای استدلال وبسرویس RESTful است .

ساخت URI وب سرویس RESTful (URI Mapping)

در هنگام ساخت وب سرویس RESTful از url های فرمت بندی شده استفاده کنید . با استفاده از فایل HTACCESS می توانید قابلیت پیمایش URL را بین درخواست و فایل اصلی را داشته باشید . در این مثال ما از دو آدرس URL استفاده می کنیم .

برای دریافت لیست همه موبایل ها :

برای دریافت لیست جزئیات موبایل ها توسط ID . در مثال زیر ‘۲’ آی دی موبایل است .

فایل .htaccess زیر برای پیمایش بین URL و ارسال درخواست به فایل PHP به کار می رود .

کنترلر وب سرویس RESTful

در فایل .htaccess , ما همه درخواست ها را به فایل RestController.php با کلیدی به نام view برای شناسایی نوع درخواست هدایت (forward) می کنیم.

کد php زیر مربوط به فایل RestController.php است که برای دریافت درخواست و هندل کردن آن بر اساس متد تعریف شده استفاده می شود . از کلید view برای شناسایی نوع درخواست URL استفاده می کنیم .

یک کلاس پایه ای RESTful

کلاس (class) زیر دارای چند متد است که معمولا در هندلر تمام سرویس RESTful استفاده می شود . یکی از متد ها برای ساختن پاسخ (response) و دیگری برای ذخیره کد وضعیت HTTP و پیام های مربوطه به صورت آرایه ای و key/value تعریف شده اند .

توابع معمول دیگری هم می توانید به این کلاس اضافه و آن را به عنوان کلاس پایه هندلر سرویس RESTful خود استفاده کنید.

هندلر وب سرویس RESTful

در هنگام ساخت وب سرویس RESTful در php نیاز است به چند مورد دقت کنید .

اول اینکه هندلر REST تصمیم دارد در چه فرمت داده ای پاسخ درخواست را برگشت دهد . این موضوع بر اساس پارامتر Accept در هدر درخواست تعیین می شود . در اینجا زمانی که درخواستی ارسال شد باید همراه درخواست, پارامتر Accept در هدر ارسالی ست شود . این مقادیر می تواند “application/json” یا application/xml و یا text/html باشد .

دومین موردی که باید دقت کنید , کد های وضعیت (Status Code) است . برای حالت موفقیت آمیز , کد وضعیت ۲۰۰ را برای پاسخ ست و اسال کنید . به طور مشابه , کد های وضعیت متفاوتی وجود دارند که بنابر وضعیت پیش آمده نیاز است که ارسال شود . برای دیدن همه کدهای وضعیت و توضیحات آن ها مقاله کد وضعیت HTTP را مطالعه بفرمایید.

تست کلاینت وب سرویس RESTful

مرحله آخر از ساخت وب سرویس RESTful در php تست سمت کلاینت وب سرویس است . برای آزمایش کلاینت وب سرویس RESTful , راه های مختلفی وجود دارد .

کلاینت های مستقل زیادی در مارکت ها وحود دارد که معمولا از پلاگین گوگل کروم (Google Chrome) برای شبیه سازی کلاینت REST استفاده میکنم . Advanced Rest Client یکی از پلاگین های گوگل کروم برای تست قسمت کلاینت REST است . این extension را نصب و همانند تصویر زیر استفاده کنید .

اسکرین شات های زیر از تست وب سرویس RESTful بر روی گوگل کروم است .

خروجی XML وب سرویس RESTful

خروجی jSON وب سرویس RESTful

جمع بندی

همانطور که دیدید مبحث ساخت وب سرویس RESTful در php بسیار چالش برانگیز و جالب است و برای تبادل داده بین پلتفرم های مختلف مثال اندروید و وب بسیار این نوع استایل برای وب سرویس مناسب اس.

بسیاری از کاربران به ظاهر حرفه ای ولی مبتدی از روش های قدیمی برای تبادل داده بین پلتفرم ها استفاده میکنند که اغلب هم بسیار آسیب پذیر هستند و آن کارایی و توسعه پذیری را ندارند .

ولی استفاده است قوانین REST برای ساخت وب سرویس های RESTful امروزه بسیار کاربری و پر استفاده است و در پروژه های Cross-Platform ی که می نویسید برای حرفه ای تر شدن کار از REST استفاده کنید .

منبع

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *