Web servis çağrıları hiyerarşik bir biçimde yapılabilmektedir. Normalde anahtar=>değer biçiminde olan parametre kullanımı yerine şu yapı kullanılmıştır :
/nesne/metod/[parametre[..]]
nesne : Tüm veri alanları gruplandı, böylece her bir veri gurubu bir nesne oldu. Örneğin language nesnesi, language için gerekli metodlar barındıracak ve bu veri gurubu üzerindeki işlemlerin tüm bu nesnenin altından yapılacak.
metod : Nesnenin içinde tanımlanmış olan metoddur. Bu metod yardımı ile servis çağrısına veri döndürülür. Örneğin /language/retrieve , dillerin listelenmesini sağlar.
parametre : Parametre verirken, parametre anahtarı belirtmeye gerek yoktur, dökümanda belirtilen sırada verilerek parametre gönderimi yapılabilir. Örneğin /menu/retrieve/1 ile 1 nolu dile ait menu verilerini listeler.
Webservice uygulamamızda, servisden kullanmak istediğiniz alanları seçerek, elde edeceğiniz anahtar yardımıyla servis adresinden size özel sonuçları alabileceksiniz.Webservis anahtar oluşturma alanına burdan ulaşabilirsiniz.
retrive : Dillerin listesini verir, herhangi bir parametre almaz ve sayfalama (pagination) yapmaz. <language></language> etiketleri içerisinde <item> lar döndürür. Dillerin kendi IDleri attribute olarak (<item id="1">...</item> gibi) eklenmiştir.
Çağrı şekli : /language/retrieve/
retrive :Yukarıdaki örnekteki mantık ile aynı çalışır ve kategori listesini verir. <category></category> etiketleri içerisinde <item> lar döndürür.
Çağrı şekli : /category/retrieve
retrive :Görüntülenecek menü listesini verir. Parametre olarak dil idsini alır. <menu></menu> etiketleri içerisinde <item> lar dödndürür. retrieve metodundan sonra girilecek parametre dil idsi olmalıdır. Böylece istenen dile uygun menü başlıkları elde edilmiş olur.
Çağrı şekli : /menu/retrieve/{languageId}
last : Son eklenen eser listesini döndürür (son eklenen 100 eser), parametre olarak dil IDsini alır. <objects></objects> etiketleri içerisinde <item> lar döndürür. Her bir <item> etiketi id,picture ve type olmak üzere üç attribute barındırır.
id => eserin ID sini
picture => eserin resmini
type => eserin tipini temsil eder
Çağrı şekli : /object/last/{languageId}
search : Eserler arasında arama yapmak için kullanılabilecek servisdir.
Çağrı şekli : /object/search/{phrase}/{offset}
Arama sonuçları sayfalama özelliğini desteklemektedir. Metod çağrısı sonucunda root elaman olan <objects> taginin total attribute u arama sonucunda elde edilen toplam değeri verir. Sphinxin bir sınırlamasından dolayı , sonuçlar 1000 ile sınırlıdır.
Offset değeri de , sayfalandırma için kullanılan bir değerdir, buraya verilecek değer, lsitenin hangi sayfada olması gerektiğini belirtmektedir.
Liste sayfası 20 sonuç ile sınırlandırılmıştır.
Arama çağrısı sonucunda, <objects> tagi içerisinde, id,picture,type attributları olan <objects> tagleri dönmektedir. Bu <objects></objects> tagi içerisinde bulnan değer eserin başlığıdır.
related :Eser ile ilgili ilişkili eserleri listeler. Parametre olarak eser idsini alır.
Çağrı şekli : /object/related/{objectId}
types :Eser tipleri listesini döndürmek için kullanılır. languageId yi parametre olarak alır. <data></data> etiketleri arasında <item> lar döndürü. Attribute olarak eser türünün IDsini alır
Çağrı şekli : /object/types/{languageId}
types :Verilen paramtrelere uygun eser listesini döndürür.
language => dil IDsini
type => eser tipini
category => eser kategorisini
limit => döndürülecek kayıt limitini temsil eder.
Çağrı şekli : /object/listof/{offset:limit}/{language}/{type}/{category}/{count}
Örnek : /object/listof/0:10/1/6/53 çağrısı, offset 0 dan başlayan, 10 adet , dili Türkçe olan(1), eser türü Makale olan(6), kategorisi "Çocuklar İçin"(53) olan verileri listeler.
/object/listof/0:10/1/6/53/1 çağrı bu şekilde yapıldığında, istenen kriterlere uyan kayıt miktarını döndürür.Fakat bu metod çağrısından dönen xml, önceki döndürülen xml yapısından biraz farklıdır. Döndürülen xml verisi aşağıdakine benzer biçimdedir :
<response status="200" time="15-03-2011 17:51:06">
<objects>
<object total="1672"></object>
</objects>
</response>
Ayrıca dil, tip veya kategori parametrelerine 0 (sıfır) verilerek istenen kombinasyonda eserlerin toplam sayısını almak mümkün.
/object/listof/0/0/0/0/1 bu tip bir çağrı, aktif tüm eserlerin sayısını verir.
Çağrı şekli : /object/detailedlistof/{offset:limit}/{language}/{type}/{category}/{format_id}/{tag_id}
Örnek : /object/detailedlistof/0:50/1/6/53/25/6 çağrısı, offset 0 dan başlayan, 50 adet , dili Türkçe olan(1), eser türü Makale olan(6), kategorisi "Çocuklar İçin"(53), Flv(25) içerikli ve Bediüzzaman Said Nursi(6) ile iliskilendirilmiş olan verileri listeler.
Ayrıca language,type,category,format_id,tag_id veya limit parametrelerine 0 (sıfır) verilerek istenen kombinasyonda eserlerin tümünü almak mümkün.
İçeriği değişmeyen bazı sayfalar bulunmakta. Bu tip sayfaların içeriğine bu nesne üzerindeki “detail” metodu ile ulaşılabilir.
Bunun öncesinde hangi statik sayfaların mevcut olduğunu bulmak için retrieve metodu kullanılmalıdır. Bu metotdan dönen listedeki sayfa id lerine bakarak içerikleri çekilebilr.
Yazar Hakkında sayfası da statik sayfa olmasına rağmen, kendine has bazı farklılıkları yüzünden static nesnesi üzeirnde aboutAuthor metodu ile erişilmelidir.
retrive :Statik sayfaların listesini verir. <data></data> etiketleri arasında <item> lar döndürür. attribute olarak IDsi verilmiştir. Herhangi bir parametre almaz. Sayfalama yapmaz.
Çağrı şekli : /static/retrieve
detail :Statik içeriği döndürür.
Çağrı şekli : /static/detail/{languageId}/{staticLinkId}
Örnek : /static/detail/1/3 çağrısı “Merak Edilen Sorular” başlığı altındaki, Türkçe diline ait HTML veriyi döndürür.
surahs : Dile göre sureleri döndürür. Parametre olarak dil Idsini alır
Çağrı şekli : /static/surahs/{languageId}
verses : Ayetleri döndürür, parametre olarak sure Id sini alır. Aşağıdakine benzer bir yanıt döndürür :
<response status="200" time="16-03-2011 18:19:08">
<objects total="7">
<object verse_no="1">Hamd Alemlerin Rabbinedir.</object>
<object verse_no="2">Rahman ve Rahimdir.</object>
<object verse_no="3">Din gününün malikidir.</object>
<object verse_no="4">
Biz yalnızca Sana ibadet eder ve yalnızca Senden yardım dileriz.
</object>
<object verse_no="5">Bizi doğru yola ilet;</object>
<object verse_no="6">Kendilerine nimet verdiklerinin yoluna</object>
<object verse_no="7">Gazaba uğrayanların ve sapmışlarınkine değil.</object>
</objects>
</response>
objects de bulunan total attribute'u toplam sayıyı temsil eder.
Çağrı şekli : /static/verses/{surahId}
aboutAuthor : Yazar Hakkında için bilgi çekilmesini sağlar. <object></object> tagi içerisinde html veri döndürür. Tag içerisindeki attributelar şunlardır :
id : Mysql ile ilgili işlemlerd ekullanılan bir veridir.
title : Yazar hakkında bölümlere ayrılmıştır ve title bölüm başlığıdır.
sayfa_no : Bölüm numarası
Çağrı şekli : /static/aboutAuthor/{languageId}
aboutAuthor çağrısı sonucunda <object></object> tagi içerisinde , yazar hakkında sayfalarının bilgilerini barındıran <object> tagleri dönmektedir.
listof :Mevcut kitapların lsitelenmesini sağlar. Döndürülen object_id parametresi ile chaptersof metodu ile kullanılırsa bu kitaba ait sölümlere ulaşılabilir
Çağrı şekli : /book/listof/{languageId}/{offset}:{limit}
örneğin /book/listof/1/0:30 Türkçe dilinde ilk 30 kayıdı döndürür.
chaptersof : Kitaba ait bölümlerin listelenmesini sağlar.
Çağrı şekli : /book/chaptersof/{objectId}
detail :Bölüme ait içeriği döndürür. Bölüme ait içeriğe ulaşabilmek için chaptersof metodundan dönen lsitede bulunan id parametresi, bölüm içeriğinin döndürülmesi için kullanılmalıdır.
Çağrı şekli : /book/detail/{chapterId}