ساخت سرویس های وب (Webservice)
در مورد سرویس های وب در مقالات قبلی صحبت کردیم و دریافتیم که توسط سرویس های وب شما قادر خواهید بود امتد های ساخته شده خود را در فضای اینترنت به اشتراک گذاشته و یا از متدهای به اشتراک گذاشته شده دیگران استفاده نمایید .
سرویس های وب کاربرد های زیادی داشته و چون بر پایه XML بنا شده با هر زبان برنامه نویسی میتوان از آن ها استفاده کرد ، به عنوان مثال شما یک سرویس وب به زبان C شارپ سخته و آن را به در اختیار دیگران قرار می دهید ، دیگران توسط خیلی از زبان های برنامه نویسی مانند Php ، جاوا ، سایر زبان های دات نت و حتی جاوااسکریپت و فلش و... می توانند از متد های شما استفاده کنند .
ساخت وب سرویس در محیط دات نت بسیار ساده می باشد .
یک پروژه جدید وب ایجاد نمایید ، از منوی WebSite گزینه Add New Item را گزینش نموده و سپس آیتم Web Service را بر گزینید ، در صورت نیاز نام آنرا تغییر داده و تایید نمایید .
اکنون یک آیتم با پسوند asmx. به پروژه و یک آیتم دیگر با همان نام با پسوند cs. یا vb. به پوشه App_Code اضافه خواهد شد (مثلا WebService.cs و WebService.asmx) .
تمامی کد نویسی ما در فایل WebService.cs یا (WebService.vb در زبان Vb.NET) انجام خواهد .
فایل WebSevice.cs را باز نمایید . کد هایی که مشاهده خواهید کرد به صورت پیشفرض به به شکل زیر خواهد بود :
کد سی شارپ :
|
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {
public WebService () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
}
|
کد وی بی :
|
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class WebService
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function HelloWorld() As String
Return "Hello World"
End Function
End Class
|
همانطور که ملاحظه می کنید ساختار کلاس یک سرویس وب کمی با ساختار کلاس صفحات Asp.NET متفاوت هست ، این کلاس از System.Web.Services.WebService ارث بری می کند .
مهمترین بخش های یک کلاس وب سرویس متد های آن می باشد . باید دقت داشته باشید که یک متد در کلاس وب سرویس باید با WebMethod آغاز گردد (در سی شارپ با [WebMethod] و در وی بی دات نت با
<WebMethod()> _ آغاز خواهد شد ) و در خط بعد خود متد قرار میگیرد ، از این به بعد به این متد "وب متد" خواهیم گفت .
همانطو که ملاحظه می کنید به صورت پیشفرض یک وب متد به نام HelloWorld برای مثال در کلاس وجود دارد . این متد یک تابع از نوع رشته ای بوده بدون هیچ ورودی که فقط یک مقدار ثابت Hello World را بر می گرداند .
|
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
|
این متد را حذف نموده و متد های مورد نظر خودمان را ایجاد می کنیم ، به عنوان مثال فرض کنید بخواهیم یک وب سرویس ماشین حساب ایجاد کنیم ، شما میتوانید متدهایی برای جمع ، ضرب و... ایجاد نمایید .
متد جمع و ضرب را به صورت زیر می نویسیم :
|
[WebMethod]
public int Multiply(int x, int y)
{
return x * y;
}
[WebMethod]
public int Plus(int x, int y)
{
return x + y;
}
|
خوب به همین سادگی یک وب سرویس ایجاد کردیم که عمل ضرب و جمع را به اشتراک خواهد گذاشت .
حال به چند نکته مفید در همین مورد می پردازیم :
لطفا نگاهی به این آدرس بیاندازید : http://faradade.com/webservices/whois.asmx در این آدرس بنده 5 متد مفید ابزار دامنه ایجاد کرده ام ، اگر به این صفحه دقت نمایید در زیر هر متد یک توضیح کوتاه در مورد متد نوشته شده است ، برای نوشتن توضیحات برای هر متد به صورت زیر عمل کنید :
سی شارپ :
|
[WebMethod(Description = "ضرب دو عدد")]
public int Multiply(int x, int y)
{
return x * y;
}
|
وی بی :
|
<WebMethod(Description:="ضرب دو عدد")> _
Public Function Multyply(ByVal x As Integer, ByVal y As Integer) As Integer
Return (x * y)
End Function
|
نکته دیگر که بد نیست به آن اشاره کنم افزودن توضیحات برای کل وب سرویس و تغییر فضا نام آن می باشد . اگر به خط اول کلاس وب سرویس خود نگاهی بیاندازید متوجه خواهید شد که فضا نام پیشفرض آن http://tempuri.org می باشد ، ترجیحا این فضا نام را به آدرس سایت خود تغییر دهید .
برای اضافه کردن توضیحات نیز به صورت زیر عمل کنید :
سی شارپ :
|
<WebService(Namespace:="http://faradade.com/webservices/", Description:="FaraDade WebServices")> _
|
وی بی :
|
[WebService(Namespace = " http://faradade.com/webservices/",Description = " FaraDade WebServices")]
|
حال این سرویس را ذخیره کرده و بر روی وب بارگزاری نمایید ، کافیست آدرس صفحه asmx. را در اختیار دیگران قرار دهید تا آنها بتوانند از متدهای استفاده کنند .
دانلود فایل پروژه