ساخت فایل وب سرویس WSDL در PHP


ساخت فایل وب سرویس WSDL در PHP

در قسمت قبل (ساخت وب سرویس با php و soap) ایجاد یک اپلیکیشن سازگار را با استفاده از پروتکل SOAP بررسی کردیم. همینطور نشان دادیم که ساخت سرور و کلاینت SOAP با کتابخانه NuSOAP چقدر آسان است اما در مقاله آموزشی PHP ساخت فایل وب سرویس WSDL در PHP می خواهیم WSDL را که در هنگام کار با SOAP حتما استفاده خواهد شد را توضیح دهیم.

در اینجا ما در ارتباط با فایل های WSDL و اینکه چطور می توان از آنها استفاده کرد بحث خواهیم کرد همچنین به شما نشان می دهیم که به چه صورت می توان فایل WSDL  را با NuSOAP ایجاد کنید و آن را با مثال های سرور و کلاینت SOAP که در قسمت قبل ایجاد کردیم ترکیب کنیم.

فایل وب سرویس WSDL چیست

WSDL (مخفف کلمات Web Service Description Language) که سندهایی از نوع XML هستند که اطلاعات و فراداده هایی را برای سرویس SOAP ارائه می کنند که شامل اطلاعاتی در ارتباط با توابع یا متدهای وب سرویس است که برنامه را قادر می سازد تا آن استفاده کند (مانند آرگومان های تابع). بوسیله ایجاد فایل های WSDL، سروریس شما برای مصرف کنندگان در دسترس قرار می گیرد. که تعاریفی که برای ارسال درخواست های معتبر لازم است را ارائه می کند. شما می توانید فایل های WSDL را به عنوان یک قرار داد کامل برای ارتباط اپلیکیشن ها فرض کنید. اگر شما می خواهید که استفاده از سرویستان آسان باشد باید WSDL را در برنامه نویسی SOAP در نظر یگیرید.

ساختار WSDL:

همانند پیام های SOAP، فایل های WSDL دارای یک طرح خاص هستند و عناصر خاص باید در محل های مختص به خودشان قرار بگیرند در زیر عناصر اصلی برای ایجاد یک فایل وب سرویس WSDL را ملاحضه می کنید.در ادامه راجع به استفاده از آن ها توضیح می دهیم.

عنصر ریشه در فایل WSDL، عنصر difinition است که منطقی است چون یک فایل WSDL تعریفی از تعریف یک وب سرویس است. عنصر types در ارتباط با نوع های داده به کار برده شده در WSDL و طرح های XML توضیح می دهد. عنصر message که تعریفی از عناصر داده برای سرویس است، هر عنصر message می تواند شامل یک یا چند عنصر part باشد. عنصر portType عملیاتی که بوسیله وب سرویس شما و پیام های درخواست و پاسخ انجام می شود را تعریف می کند. عنصر binding شامل تعریف قالب داده برای یک portType خاص است در نهایت ما عنصر service را مشاهده می کنیم که مجموعه ای از عناصر سرویس است که شامل آدرس سرویس می باشد.

حتما بخوانید  آموزش ساخت سیستم لایک با php و ajax

واژگان در نامگذاری نسخه دوم از WSDL تغییراتی داشته است به طور مثال portType به interface تبدیل شده است از آنجا که پشتیبانی از WSDL 2.0 فعلا کم است ما WSDL 1.0 را برای توضیح انتخاب کردیم.

ایجاد یک فایل WSDL:

نوشتن فایل وب سرویس WSDL به صورت دستی کاری بسیار سنگین است زیرا شامل برچسب های خاص و معمولا طولانی است، موردی که در ارتباط با NuSOAP اهمیت دارد، توانایی ایجاد فایل وب سرویس WSDL برای ماست. حالا باید سرور SOAP که در جلسه قبل ایجاد کردیم را با WSDL تطبیق دهیم.

فایل productlist.php را باز کنید و کد زیر را در آن وارد کنید.

در واقع این همان کد قبلی با دو تغییر است. اولین تغییر اضافه کردن فراخوانی تابع configureWSDL است، این متد نقش یک پرچم را برای سرویس ما بازی می کند بدین صورت که به سرور اعلام می کند که فایل WSDL را برای سرویس ایجاد کند. اولین آرگومان نام سرویس است و دومی فضای نام برای سرویس ما که در پلتفرم هایی مانند: Apache Axis و .Net بهتراست که مقدار دهی شود تا سازگاری کامل تری ایجاد شود. دومین تغییر اضافه کردن یک آرگومان دیگر به متد register است که به صورت زیر است:

  • getProd: نام تابع است.
  • array("category" => "xsd:string"): آرگومان های ورودی و نوع داده را برای تابع getProd تعریف می کند.
  • array("return" => "xsd:string"): مقدار برگشتی تابع و نوع آن را تعریف می کند.
  • urn:productlist: فضای نام را تعریف می کند.
  • urn:productlist#getProd: عمل SOAP را تعریف می کند.
  • rpc: نوع فراخوانی را تعریف می کند (که می تواند rpc یا document باشد).
  • encoded: مقدار را برای ویژیگی use تعریف می کند (encoded یا literal می تواند استفاده شود).
حتما بخوانید  ساخت وب سرویس RESTful در php

پارمتر آخر هم مستنداتی در ارتباط با تابع getProd و آنچه که انجام می دهد می باشد.

حالا در مرورگر خود آدرس http://yourwebroot/productlist.php?wsdl را وارد کنید. توجه داشته باشید که yourwebroot لوکال هاست یا آدرس وب سایت شماست، حال باید فایل WSDL ایجاد شده را مشاهده کنید، سورس را کپی کنید و آن را در فایلی به نام products.wsdl دخیره کنید و در پوشه وب سایت قرار دهید.

استفاده از فایل WSDL در سمت کلاینت:

ما سرور SOAP را برای ایجاد فایل WSDL ویرایش کریم حالا باید کلاینت SOAP را برای استفاده از آن تغییر دهیم. فایل productlistclient.php که در قسمت قبل ایجاد کردیم را باز کنید و کد زیر را که سازنده کلاینت است را:

به:

تغییر دهید. پارامتر دوم در nusoap_client تعیین می کند که سازنده NuSOAP با دریافت WSDL ایجاد شود. حالا فایل productlistclient.php را در مرورگر خود اجرا کنید، باید همان نتایح قبل را مشاهده کنید با این تفاوت که اینبار شما از قدرت WSDL استفاده کرده اید.

نتیجه گیری:

در قسمت دوم ما اهمیت استفاده از WSDL را جهت قابلیت همکاری و سازگاری را مرور کردیم و در ارتباط با عناصر مختلف و تعاریفشان که فایل WSDL را ایجاد می کنند بحث کردیم سپس نشان دادیم که چطور می توانید به راحتی با استفاده از NuSOAP فایل WSDL را ایجاد کنید، در نهایت ما سرور و کلاینت SOAP را برای شرح طریقه استفاده از WSDL تغییر دادیم.

هر مشکلی در پیاده سازی کد های ساخت فایل وب سرویس WSDL در PHP داشتید . از قسمت نظرات با ما در ارتباط باشید , سریعا پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید

حسن شفیعی
مدرس ، پنتستر ، توسعه دهنده اپلیکیشن های تحت وب ، عضو مرکز حامی نخبگان و از مدیران و اعضای رسمی تیم امنیتی آشیانه هستم . علاقه خاصی به زبان php و امنیت شبکه و لینوکس دارم و هر روز تلاش می کنم به این حوزه ها مسلط تر شوم و اطلاعاتم را در وب به اشتراک بگذارم

دیدگاه کاربران

2 پاسخ به “ساخت فایل وب سرویس WSDL در PHP”

  1. Reza.dev گفت:

    سلام. چرا در سال ۲۰۱۸ هنوز از nuSOAP استفاده میکنید؟ در صورتی از php5 اکستنشن SOAP اومده؟

    0

    • حسن شفیعی گفت:

      سلام . خب یکی از مزیت هاش همین مقاله ای که خواندید هستش ینی سایت فایل های WSDL برای وب سرویس .
      و مورد دیگه اینکه با PHP4 سازگاره با اینکه دیگر استفاده نمیشه

      بک سری از متد های از پیش ساخته شده هم داره که هنگام کار با soap باید خودتون بنویسید

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

      موفق باشید

      0

دیدگاهتان را بنویسید

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

جدیدترین آموزش های آنلاین



دانلود رایگان (هدیه ویژه)

کتاب آموزش زبان برنامه نویسی PHP را دانلود و همین امروز یادگیری را شروع کن و به جمع برنامه نویسان ملحق شو ;)

دانلود رایگان کتاب

بخش کاربران

هنوز عضو نیستید ؟ کلیک کنید

مجوزهای ما

logo-enamd
logo-samandehi

دانلود کتاب

عضویت در خبرنامه