ساخت وب سرویس


سلام

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

در این اموزش سعی می کنم با زبان ساده اموزش ساختن یک وبسرویس رو اموزش بدم 

<?php
//include library file :)
require_once 'lib/nusoap.php';

//create abject from nusoap
$server= new nusoap_server();

///config WSDL file
$server->configureWSDL('new wsdl','http://localhost:81/test');

//register  function and set value type
$server->register('myFunction',
  array('value'=>'xsd:string'),///input
  array('result'=>'xsd:string'), ///out put
  'http://localhost:81/test'//name space

);
///create function
function myFunction($value)
{
  $result=$value;
  return $result;
}

// create HTTP listener
$HTTP_RAW_POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';

$server->service($HTTP_RAW_POST_DATA);
exit();
?>

 

این کد واسه سمت سروره ...

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

البته میتونید از ادرس http://sourceforge.net/projects/nusoap/ کتابخانه ها رو دریافت کنید ....

مرحله ی بعد یک شی از nusoap_server می سازیم .

configureWSDL : با استفاده از این تابع واسه سیستم توضیح میدیم که میخاییم از نوع درخاست wsdl  استفاده کنیم . این تابع دو مقدار می گیره ... مقدار اول اسم تابع و دومی هم name space  هستش ... (امیدوارم بدونین name space چیه :) )

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

خب بریم سراغ اینکه بخاییم تابع رو توی سیستم ریجستر کنیم

register : با استفاده از این تابع ما تابع خودمون همچنین نوع ورودی و خروجی و name space  و ... توی وبسرویس ریجستر می کنیم .

ورودی اول اسم تابع و دومی مقادیری که تابع می گیره و نوعشون به صورت ارایه و سومی هم مقادیر خروج و نوعشون و name space

service : با استفاده از این تابع و درکل 3 خط اخر یک گوش دهنده به درخاست تعریف می کنیم

 

بریم سراغ کدهای سمت کاربر

<?php
require_once ('lib/nusoap.php');

$client=new nusoap_client('http://localhost:81/test/web.php?wsdl',true);

$result=$client->call('myFunction',array('value'=>'adffbc'));
var_dump($result);

?>

اول کتابخانه ها رو اینکلود می کنیم 

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

call : با استفاده از این تابع ، تابعی رو که به وبسرویس معرفی (ریجستر) کرده بودیم رو صدا می زنیم .

و در اخر هم از مقادریر که تابع بر می گردونه پرینت می گیریم

نمایش کد روی github

دانلود نمونه کد

۱۳۴۸/۱۰/۱۱ || in category : پی اچ پی php