Web Servis Yazmak ve Kullanmak

Bu yazımda elimden geldiğince Web Service (Web Servis) konusuna değinmeye çalışacağım. Öncelikle web servis nedir sorusunun cevabını kendimce vermeye çalışayım. Çeşitli uygulamalar geliştiren bir firma olduğunuzu kabul edelim. Projelerinizde sık sık kullandığınız yapılar var örneğin, seçilen şehire göre ilçeleri listeleme veya döviz kurlarını gösterme gibi.. Biraz daha geniş düşünürsek, birden fazla uygulamada kullandığımız sanal posları tek bir merkezde toplayıp, istediğimiz uygulamadan veri gönderip işlemlerimizi gerçekleştirebiliriz. Servislerin bir güzelliği de, php, klasik asp, jsp, java vb.. dillerlede çok rahat bir şekilde kullanılması. Ne kadar yazarsam yazayım web servisin nimetlerini uygulamadan görmemiz imkansız. Öncelikle burada ve şurada ki makalelere göz atmanızda fayda var.

Visual Studio 2008′ i çalıştırıp, File / New Project / ASP.NET Web Service
Application
‘ a tıklayıp yeni projemizi oluşturuyoruz.

Karşımıza ilk gelen ekran şu şekilde olacaktır.

Hiç birşey yapmadan projemizi çalıştırıp örneğimizi gözlemliyoruz. (F5) Gördüğünüz gibi karşınıza HelloWorld adındaki işlemimiz geldi. Sayfadaki tasarımıda biz yapmadık otomatik geldi.

HelloWorld işlemine tıkladığımızda Çağır adındaki butonu görüyoruz, alt satırlarda gerekli açıklamalar yer alıyor.

Çağır butonuna tıkladığımızda, karşımıza xml şeklide bir veri geliyor. Hello World değişkeni string olduğu için string olarak geri döndü.

Gördüğünüz gibi çok basit bir yapı. Hemen kendimize bir işlem yazalım ve bilgimizi pekiştirelim. Projemize geri dönüyoruz ve HelloWord un altına yazmaya başlıyoruz. İşlemimiz ad ve soyad kontrolü yapıp geriye bool (true, false) bir değer döndürsün.

    [WebMethod]
    public bool ilkServisimiz(string ad, string soyad)
    {
        bool geriDonecekDeger;
        if (ad == "ali" && soyad == "veli")
        {
            geriDonecekDeger = true;
        }
        else
        {
            geriDonecekDeger = false;
        }
        return geriDonecekDeger;
    }
    //gördünüz gibi klasik c# dan hiç bir fark bulunmuyor.
    //servisde görüntülenecek işlemin kodlarının başına [WebMethod] eklememiz yeterli.

Bu basit yapıda ad ve soyad adında iki stringi alıp kontrol ediyoruz. Eğer istediğimiz bilgiler gelirse true değilse false döndürüyoruz. Projemizi hemen çalıştırıyoruz. HelloWorld şleminin altında ilkServisimiz adındaki işlemi görmüş olmamız gerekiyor. Tıklayıp çalıştırdığımızda bizden ad ve soyad değişkenlerini isteyen bir form görüntüleniyor. ali veli yazıp çağır dediğimizde sonuç true olarak, aksi durumda false olarak dönüyor. İlk servisimiz hayırlı uğurlu olsun :)

Şimdi web servis uygulamamızı web sayfalarımızda nasıl kullanacağımıza bakalım. Hemen Visual Studio 2008 den File / New Web Site diyoruz. Default.aspx sayfamızın içine hemen aşağıdaki gibi basit bir form koyuyoruz.

Ad

<asp:TextBox ID="txtad" runat="server"></asp:TextBox>

<br />

Soyad

<asp:TextBox ID="txtsoyad" runat="server"></asp:TextBox>

<br />

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Gönder" />

<br />

<asp:Label runat="server" ID="lblmesaj" ForeColor="Red"></asp:Label>

Şimdi gelelim web servisimizi web sayfamızda kullanmak için gerekli adımlara.  Solution Explorer dan sağ tuş tıklayıp Add Web Reference diyoruz.

Açılan pencereye oluşturduğumuz web servisin adresini girip Go diyoruz. Karşımıza işlemlerimiz geliyor ve ilkServisimiz adlı işleme tıklıyoruz.

Görüldüğü gibi web servis projemizi çalıştırdığımızdaki ekranlar ile birebir aynı bir arayüz geliyor karşımıza. Web reference name kısmında referans için bir isim giriyoruz. Ben ebreferansim diye giriyorum ve Add Reference ye tıklayıp projeme dahil ediyorum.

Solution Explore baktığımızda APP_WebReferences klasörünün altına gerekli dosyaların geldiğini görüyoruz. Aynı projede birden fazla web servis kullanmamız mümkün.

Default.aspx.cs dosyamıza gidip kodlarımızı yazmaya başlıyoruz. Unutmadan kodlarımızı oluşturduğumuz formdaki butonun onclick özelliğine yazıyoruz.

protected void Button1_Click(object sender, EventArgs e)
{
// servis adındaki nesnemizi oluşturuyoruz.
webreferansim.Service1 servis = new webreferansim.Service1();

//hemen servisimiz içindeki kodları hatırlayalım
//---------------------------------------------------
//[WebMethod]
//public bool ilkServisimiz(string ad,string soyad) {}
//aşşağıdaki satırda, ad ve soyad değişkenlerini aynen methodumuza gönderiyoruz.
bool servistenGeriDonenDeger = servis.ilkServisimiz(txtad.Text, txtsoyad.Text);

//dönen değeri ekrana yazdırıyoruz.
Response.Write("Geri dönen değerimiz: <strong>" + servistenGeriDonenDeger + "</strong>");

//pekiştirmek için basit bir if bloğu
if (servistenGeriDonenDeger)
{
lblmesaj.Text = "Bilgiler doğru !";
}
else
{
lblmesaj.Text = "Bilgiler yanlış !";
}
}

İşte bu kadar gördüğünüz gibi .net ortamında web servis hazırlama ve kullanma işi gerçekten çok basit. Unutmadan burada incelemeye değer çokça servis bulunuyor. Umarım faydalı bir yazı olmuştur, hoşçakalın.

Örnek
dosyaları buradan indirebilirsiniz.