G-G-S, 7. ~~ Web Metotları


Arkadaşlar Merhaba;

Geçmişten Günümüze serisinin yedinci makalesinde yine beraberiz ;)

Bir önceki yazımızda, bir Web servisinin aktaılması, yanıtın döndürülmesi ve yanıtlanmasından bahsetmiştik. Bu yazımızda artık wen sersislerini geliştirmemiz için gerekli olan WebMethod'u inceliyeceğiz.

Belirli bir metodun ve ya özelliğin, web aracılığı ile çağırılabileceğini belirtmek için onu [WebMethod] olarak belirtmemiz gerekir. .Net Framework 1.x'de sadece metodları kullanabilirken, .NEt Framework 2.x'ten itibaren özelliklerin kullanımıda artık sağlanabiliyor.

Bir web serviste, bir ve ya birden fazla metodu ve ya özelliği kullanıma açma imkanına sahibiz. Yayına açtığımız Web metotlarını, genel olarak kullandığımız erişim belirteçleri ile "public, protected gibi" erişim izinlerini belirleme imkanına da sahibiz.

Örnek olarak, bir int değer döndüren ve string paramektre alan web metodu aşağıdaki söz dizimine sahiptir.

[WebMethod]

public int DegerDondur(string deger)

{

................

}

Web metodları kendilerine özgü parametreler ve tipler de alabilirler. Web servisinizin davranışlarını belirlemek için farklı attribute'ler ile bunları belirleyebilirsiniz. Bu Attribut'ler web metodu çok farklı özelleştirebilmemize imkan tanımaktadırlar. Buna bir örnek vermek gerekirse, belirli zamanlarda servisin önbelleğinize aktarılacağını belirtmek için, CacheDuration niteliğinden faydalanabilirsiniz. Bunun kullanımı [WebMethod...] içerisinde yer almaktadır. Client belirli bir süre içerisinde yine talepte bulursa, server'a gitmewk yerine bu tampon bellek üzerinden cevap verir. bu tanımlamayı aşağıdaki gibi kullanabilirsiniz.

[WebMethod(CacheDuration=60)]

public int DegerDondur(string deger)

{

................

}

bir web metot'a bir nitelik ekleyebileceğiniz gibi, aralara virgül koyarak bir den fazla ve ihtiyacınız doğrultusunda ekleme yapabilirsiniz. Özelikle Description niteli, servisinizi kullanmak isteyen kullanıcıya, bu servisi kullanıp kullanmaması gerektiği hakıkında bir açıklama sunmaktadır ve gerçekten önemlidir. Yukarıdaki tanımlamaya açıklama eklemek için aşağıdaki gibi bir yapı kullanabilirsiniz.

[WebMethod(CacheDuration=60), Description="Bu servis string parametre alır ve geriye int değer döndürür"]

public int DegerDondur(string deger)

{

................

}

aşağıdaki resimde bir servise açıklama eklenmiş ve eklenmemiş halini görebilirsiniz.

 

Burada kullanılan çok basit bir metot olduğu için, bu açıklama ne kadar önemlidir bilmiyorum ancak gerçek anlamda ciddi bir işlevselliği olan bir serviste gerçekten çok fazla önem arzetmektedir.

Service Description link'ine tıkladığınızda servisin WSDL XML'ine ulaşıp, servi ile ilgili detayları görebilirsiniz. Bu yazımızdan sonra yapacağımız örnekte WSDL, DISCO ve UDDI'ı inceliyeceğiz.

 







Blog Posts' Cloud