Web Service Oluşturma

Farklı üreticilerden çıkan farklı uygulamaların, iş mantığını anlama, verilerden haberdar olma ve ek olarak kod parçacıkları ekleme ihtiyacı duymaksızın ağ üzerinden paylaşıma açılmasına Web Service diyebiliriz.
Web Servislerin büyük oranda avantajları mevcuttur.Birlikte işlenebildikleri gibi kullanımı oldukça kolaydır ve tekrar tekrar kullanılabilirler.Aynı anda her yerde mevcut olabilirler ve herkes tarafından kullanılabilirler.

Öncelikle bir Web Service nasıl yazılır inceleyelim.
Bir Web projesi başlatalım.Açılan projeye Add Item’dan “Web Service” dosyası ekleyeceğiz.Adına “Service.asmx” diyerek dosyayı projeye ekliyorum.Otomatik olarak App_Code dosyasına “Service.cs” isminde dosyayı ekleyecektir.Bu dosyayı açarsak eğer aşağıdaki kodları göreceğiz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
/// <summary>
/// Summary description for Service
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService {
    public Service () {

        //Uncomment the following line if using designed components
        //InitializeComponent();
    }
    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }
}

Varsayılan olarak “Service.cs” dosyamızda HelloWorld metodunu görmekteyiz.
Şimdi hiç bir müdahale etmeden projemizi derleyip çalıştıralım.Dikkat ederseniz “http://localhost:37580/WebSite17/Service.asmx” benzer bir adres açılacaktır.Burada çalıştırılan sayfa “Service.asmx” dosyasıdır.Sayfa açıldığında aşağıdaki gibi bir ekran gözükecektir.
Gördüğünüz gibi varsayılan olarak gelen HelloWorld ismindeki metodumuz gözükmektedir.
Şimdi metod üzerinde biraz duralım.

    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }

Metodumuzun üstünde yazan [WebMethod] attribute u bu metodun “Service.asmx” sayfasında gözükmesini sağlamaktadır.Eğer [WebMethod] attribute unu kaldırırsak, metodumuz burada gözükmeyecektir.
Metodumuzu incelersek eğer, geriye string dönen ve parametre almayan tiptendir.Geriye döndüğü değerde “Hello World” değeridir.
Şimdi HelloWorld metoduna tıklayalım.

Gördüğünüz gibi Test amaçlı bir sayfa geldi.Burada Web Service imizdeki metodumuzu test edebiliyoruz.Invoke butonuna tıklayalım.

<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://tempuri.org/">Hello World</string>

Gördüğünüz gibi geriye bir XML formatında değer döndü.HelloWorld metodu geriye string döndüğünden dolayı, XML dosyasındaki elemanın adıda string olarak gelmektedir.Değer olarak gelen “Hello World” de, metodun geriye döndürdüğü değerdir.
Ben şimdi “Service.cs” geriye int dönen, int tipinde 2 parametre alan ve adıda Topla olan bir metod yazacağım.

    public int Topla(int sayi1, int sayi2)
    {
        return sayi1 + sayi2;
    }

Yukarıdaki metodu yazıp, projeyi derleyip çalıştırdığım zaman sadece HelloWorld metodunu göreceğiz.Bunun sebebi [WebMethod] attribute unu Topla metodumuzun üstüne yazmamızdan kaynaklanmaktadır.

    [WebMethod]
    public int Topla(int sayi1, int sayi2)
    {
        return sayi1 + sayi2;
    }

Bu şekilde projeyi tekrar çalıştırdığım zaman aşağıdaki görüntüyü gelecektir.

Gördüğünüz gibi servisimizde ne kadar metod varsa alt alta bu şekilde listelenmektedir.Şimdi Topla metoduna tıklıyoruz.
HelloWorld metodunu tıkladığımızda sadece Invoke butonuyla karsılasıyorduk.Çünkü o metodda hiç parametre bulunmamaktadır.Topla metodunda ise int tipinden sayi1 ve sayi2 parametreleri bulunduğundan dolayı, Test ederken bu parametre değerlerini bizden istiyor.Ben 2 ve 3 değerlerini verip Invoke metoduna tıklıyorum.

<?xml version="1.0" encoding="UTF-8"?>
<int xmlns="http://tempuri.org/">5</int>

Tekrardan XML tabanlı bir sayfa dönüyor.Metodumuz int tipinden değer döndüğünden dolayı elemanın adı int, değeri ise 5 tir.Metod parametrelerden aldığı değeri içerde topluyor ve sonucu geriye döndürüyor.

Bu yazımda bir Web Service nasıl yazılır, metodları nasıl Test edilir görmüş olduk.Bir sonraki yazımda Web Servis kullanımını anlatacağım.
İyi çalışmalar
See You…

Bunlar da hoşunuza gidebilir...

2 Cevaplar

  1. arda dedi ki:

    Merhaba. Yazıdaki her şeyi uyguladım fakat parametreleri girip invoke butonuna batığımda http://localhost:37580/WebSite17/Service.asmx/UserControl” sayfasını yeni sekmede açıyor ve ‘/’ Uygulamasında Sunucu Hatası. Kaynak bulunamadı hatası veriyor. Ne yapmam gerek

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Copy Protected by Chetan's WP-Copyprotect.