3 Aralık 2018 Pazartesi

Web Servis Nasıl Yazılır ve Eklenmesi

Web servis yazmak için istediğiniz bir programlama dilini kullanarak geliştirebilirsiniz. 

Örneğimizde C# programlama dili kullanılarak Web servis yazacağız.
Asp.Net ile web servis geliştirelim ve servisin çalışma yapısını inceleyelim. Öncelikle web servisin veri tabanı kısmını hazırlayalım daha sonra web servisimizi yazalım.

-Web Servis Veri Tabanı İşlemleri


Öncelikle Microsoft SQL Server üzerinde veri tabanımızı oluşturalım. SQL Server’i açalım ve bir veri tabanı ekleyelim.

1.“Databases” seçeneğine sağ tıklayarak “New Database” seçeneğini seçelim.


2.Veri tabanı adımızı “WebServis” olarak belirleyelim. OK tuşuna tıklayarak veri tabanımızı oluşturalım.



3.Veri tabanımızda “WebServis” veri tabanı içerisinde bulunan “Tables” seçeneğini sağ tıklayarak “New>Table” yolunu izleyerek web servisimizde kullanılacak bilgileri tutacağımız tablomuzu oluşturalım.



4.Tablomuza değerlerimizi atayalım. Veri tabanımızdaki “ID” değerine Birincil Anahtar (Primary Key) atayalım. Bu işlemi yapmamızın sebebi bu alandaki değerin daha sonradan değiştirilemeyecek olması yani her kayıta özel bir alan yaparak sorgulamalarımızı bu alan üzerinden yapacağımızdandır.

5."ID" alanımıza sağ tıklayalım ve "Set Primary Key" seçeneğini tıklayarak bu alanımıza birincil anahtar değerini atayalım.

6.Birincil anahtarı atadıktan sonra bu alanın değerini her kayıtta otomatik olarak artırmak için "ID" değerini seçerek "Identity Specification" seçeneğinin altında bulunan "Is Identity" seçeneğini "Yes" olarak değiştirelim. Bu özelliğin değişmesi ile her yeni kayıt eklendiğinde "ID" değerimiz birer olarak artacaktır.

7.Tablomuzu kayıt edelim ve tablomuza "Kisiler" ismini verelim. Tablomuza birkaç kayıt ekleyelim.

8.Veri tabanımız üzerinde sağ tıklayarak "New Query" seçeneğini seçelim ve prosedürümüzü yazalım. Yazacağımız prosedür sayesinde web servisteki sorgulama işlemlerini prosedür içerisinde gerçekleştireceğiz ve prosedürden gelen kayıtları web servise aktaracağız.


9."SPBILGILERIGETIR" adında bir prosedür oluşturduk. Bu prosedürde parametre olarak "@ID" değerini aldık ve web servise gönderilecek olan parametre değerimiz bu değer olacaktır. Böylece her ID değerinde veri tabanımızda bilgi var ise o bilgileri web servisin istek yapıldığı yere göndereceğiz. Veri tabanı işlemlerini tamamladık artık web servisimizi yazabiliriz.



















Visual Studio IDE ortamını açalım. Yeni bir proje oluşturalım.



















Projemize sağ tıklayalım "Add>New Item" seçeneğini seçelim.

"Web Service (ASMX)" seçeneğini seçelim "Add" seçeneğiyle projemize ekleyelim.




















































Web servisimizde hazır olarak yazılmış ve "Hello World" değerini istek yapan kullanıcıya döndüren metod bulunmaktadır. Bu metodun nasıl çalıştığını inceleyelim.















Web servis projesi çalıştırılınca tarayıcı üzerinde HelloWorld isimli metod görünmekte olup onun çağırılması durumunda bize çıktı vermektedir. Web servise tıkladığımız zaman web servisi kullanacak kişilerin isteklerini gönderecekleri "POST" metodunu görebilmemiz için Çağır / Invoke  buttonuna basarak web serviste gönderilecek bilgileri görüntüleyebiliriz. 



Web servis bizlere "XML" formatında bilgi döndürmektedir. Web servisin çalışma mantığını inceledik artık web servisimizi geliştirebiliriz.
Veri tabanımızda bulunan bilgileri çekeceğimiz alanlar için projemizde bir sınıf oluşturalım. Bu sınıfı oluşturmamızın amacı veri tabanından gelen bilgileri bir sınıf üzerinde tutarak kullanıcıya göndermemizdir.

Projemize sağ tıklayalım "Add>Class" seçeneği ile projemize sınıf ekleyelim.

















    public class Bilgiler
    {
        public int Id { get; set; }
        public string Adi { get; set; }
        public string Soyadi { get; set; }

    }

Web.config dosyasına bağlanması için veri tabanı bilgileri eklenir.





Servis dosyasına veri tabanına erişmek için gerekli olan bilgileri ekleyelim.




        [WebMethod]
        public Bilgiler BilgileriGetir(int Id)
        {
            Bilgiler bilgilerimiz = new Bilgiler();
            string cs = ConfigurationManager.ConnectionStrings["DbBaglan"].ConnectionString;
            SqlConnection baglan = new SqlConnection(cs);
            SqlCommand komut = new SqlCommand("SP_BILGILERIGETIR", baglan);
            SqlParameter parameter = new SqlParameter();
            parameter.ParameterName = "@Id";
            parameter.Value = Id;

            komut.Parameters.Add(parameter);
            baglan.Open();
            SqlDataReader dr = komut.ExecuteReader();

            while(dr.Read())
            {
                bilgilerimiz.Id = Convert.ToInt32(dr["ID"]);
                bilgilerimiz.Adi = dr["Adi"].ToString();
                bilgilerimiz.Soyadi = dr["Soyadi"].ToString();
            }
            return bilgilerimiz;
        }




Web servis sınıfına "Bilgiler" adında verileri döndüreceğimiz metodumuzu yazdık. "Web.config" dosyamızda tanımladığımız bağlantımızı alıyoruz. Veri tabanımızda yazdığımız prosedürü çağırıyoruz ve prosedürün bizden istediği "ID" değerini prosedüre yollayarak prosedürden gelen bilgileri tanımlamış olduğumuz sınıfımıza atıyoruz. Metodumuzun sonunda bu bilgileri kullanıcıya gönderiyoruz.

Web servisimizi çalıştıralım ;
Web servis bize "ID" değeri gönderdiğimiz değere eşit olan kaydın bilgilerini döndürdü. Böylelikle web servis yazmayı görmüş olduk.


Servisi eklemek için  aşağıdaki yapı kullanılır.























5 yorum:

  1. Devamı gelecekmi yetersiz bir yazı olmuş

    YanıtlaSil
    Yanıtlar
    1. Size hangi taraf lazımdı? Bu makalede hedef Web Servis Yazıp Projemize eklemek

      Sil
  2. Merhaba. Web servisi sunucuya nasıl yükleyip yayınlayacağız? Web site yayınından farkı nedir?

    YanıtlaSil
    Yanıtlar
    1. Merhabalar, tıpkı bir web sitesi yayınlarmış gibi web servis projesine sağ tıklayıp publish diyerek yayınlayabilirsiniz bir farkı yoktur.

      Sil

SQL Server ve SQL Server Management Studio Kurulumu

Merhaba arkadaşlar, bu makalede SQL Server kurulumunu inceleyeceğiz. Öncelikle kurulum yapmak istediğimiz bilgisayarın işletim sistemine bak...