Makale Özeti

Bu makalemizde, hem WSS 3.0 (Windows SharePoint Services) hemde MOSS 2007 (Microsoft Office SharePoint Server) uygulamalarına dışarıdan hangi web servislerini ve metotlarını kullanarak ulaşabileceğimize bakacağız.

Makale

SharePoint Web Servisleri

Sharepoint uygulamaları bir dizi web servislerini kullanarak uzaktan Sharepoint içerisindeki bilgilere ulaşabilmemize imkan veriyor. Burada Sharepoint uygulamalarından bahsederken hem WSS 3.0 (Windows SharePoint Services) hemde MOSS 2007 (Microsoft Office SharePoint Server) üzerinde yapılmış uygulamaları konuya dahil edeceğim. Programlama ile Sharepoint uygulamalarına erişmek için birçok yol vardır. Object model, web servisleri, RPC ve WebDav. Her birinin uygulamanın ihtiyaçları, kullanım yeriniz ve amacınıza göre farklı yararları vardır. (RPC ile erişim konusunda daha önceden bir makale yazmıştım. Aslında o makaledeki amacım bir sonraki makalelerde kullanmak üzere RPC metodu ile eriştiğimiz listelerdeki alanları ortaya çıkarabilmekti. Bu listelerin hangi alanları kullanarak verileri sakladığını bilmediğimden ve bununla ilgili herhangi bir bilgi bulamadığımdan dolayı url protokolü üzerinden RPC metotlarını kullanan bir kısa yolla bu alan bilgilerine ulaşabiliyordum. Bu bilgilerin ne işe yaradığını bir sonraki makalelerde ayrıntıları ile görüyor olacağız.) Sharepoint RPC protokolleri oldukça güçlü ve yararlıdırlar. Özellikle bir içerik eklemek istediğinizde rahatlıkla RPC protokollerini kullanabilirsiniz. Object model de web servislerine göre daha tutarlı ve zengin özelliklere sahip olsa da uzaktan erişim desteği yoktur. Object modeli kullanmak istiyorsanız, kodunuz Sharepoint sunucusu üzerinde çalışmalı ve sadece .NET kodu kullanarak uygulamanızı yazmalısınız.

Sharepoint verisine uzaktan erişmek için çok farklı nedenler sıralanabilir. Uzaktan administrative bir script çalıştırmak isteyebilirsiniz, Sharepoint içeriğindeki takvim ile örneğin istemci makinada çalışan bir uygulamadaki görevler bölümünü konuşturup, karşılıklı güncellemeleri sağlamak isteyebilirsiniz ya da en basitinden kurum içinde Sharepoint uygulaması olmayan bir web uygulamanız vardır ve Sharepoint üzerinden gelen bilgiler ile bu uygulamanızda bir operasyon gerçekleştiriyor olabilirsiniz.

İşte Sharepoint web servislerini kullanarak; uzaktan, object model içerisinde bulunan birçok özelliği de kullanarak istediğimiz dilde ve platformda uygulamalar geliştirebilir ve bu servisler üzerinden Sharepoint içeriklerine ulaşabiliriz.

Birçok görev için object model ile karşılaştırdığımızda Sharepoint içerisinde bize sunulan web servisleri yetersizdir. Ama emin olun hiç olmamasından iyidir ve şu ana kadar kendi uygulamalarımda arayıp da bulamadığım bir web servisi olmadı. Mevcut web servislerinin hepsi işimi gördü. Ama gerçekten de çok zor durumda kaldınız ve mevcut web servisleri de ihtiyacı karşılamıyorsa, object model üzerinden kendinize ait web servisleri yazarak da bu sorunun üstesinden gelebilirsiniz.

Şimdi WSS 3.0 and MOSS 2007 içerisinde kullanabileceğimiz web servislerine bir göz atalım.

Şimdi burada WSS 3.0 and MOSS 2007 arasındaki farkları anlatıp zaman kaybetmeyeceğim. Bununla ilgili birçok makaleyi internetten bulabilirsiniz. Biz şimdi asıl bu iki teknoloji de kullanılan web servislerine odaklanalım. Bu noktada şu hatırlatmayı da yapmadan geçmeyelim. MOSS 2007 aslında WSS 3.0’ın üzerine kurulan ve IIS (Internet Information Server) üzerinde çalışan bir ASP.NET 2.0 web uygulamasıdır. Eğer ASP.NET ve ISS bilginiz varsa Sharepoint uygulamaları üzerinde çalışırken hiç zorluk yaşamayacaksınız. Yazının devamında bahsedeceğim bir çok web servis WSS 3.0 ile geliyor. Birkaç tanesi de MOSS 2007 ile. MOSS ile gelenler daha çok kurumsal uygulamalarda kullanılanlar. Gelişmiş kurumsal arama özellikleri gibi.

Sharepoint web servisleri de ASP.NET web servisleri (ASMX) gibidir. Bu web servislerinin çoğunu eğer varsayılan bir kurulum gerçekleştirdi iseniz C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI klasörü altında fiziksel olarak bulabilirsiniz.


Central Administration aracı için kullanılan admin web servisi ise aynı yerde ADMISAPI klasöründedir. O da _vti_adm isimli sanal klasörün altındadır.


Bir Sharepoint sitesi oluşturulduğunda her biri "_vti_bin" isimli bir sanal klasör içerir ve bu klasör bu fiziksel noktayı gösterir. IIS herhangi bir alt web sitesi için bir uygulama ya da sanal klasör içermez. Bunun yerine _vti_bin sanal klasörünü kullanarak SharePoint metadatası ve HttpModules aracılığıyla o uygulamalara mapping içerir.

Her bir servis için WSDL (Web Services Description Language) servisini üreten bir *.wsdl.aspx dosyasını, servis discovery implementasyonunu sağlayan *.disco.aspx dosyasını ve asıl *.asmx dosyalarını bulacaksınız.

Servis Dosya Tipi Açıklama
*.wsdl.aspx (search.wsdl.aspx) WSDL (Web Services Description Language) servisi üretir
*.disco.aspx (seach.disco.aspx) Servis discovery implementasyonunu sağlar
*.asmx (search.asmx) Asıl web servisimiz (Sharepoint assembly sine referansları içerir)

SharePoint Web Servisleri ve Metotları

Sharepoint içerisinde birçok web servisi vardır. Bu web servisleri birçok temel işten, administrative işlere; aramadan, liste verileri ile yapabileceğimiz işlere kadar birçok işlemi kolaylıkla yapabilmemizi sağlayacak. Aşağıda referans olarak kullanabileceğiniz Sharepoint web servislerinin ve metotlarının bir listesini bulabilirsiniz. Daha sonraki makalelerimizde buradaki web servislerinin bazılarını kullanarak birçok senaryoyu Sharepoint üzerinden uygulama fırsatı elde edeceğiz. Bu servislere kendi Sharepoint uygulamanız üzerinden rahatlıkla erişebilirsiniz. Tek yapmanız gereken: http://SunucuIsmi/_vti_bin/ServisYeri

Yani; adres barınıza, örneğin http://litwareportal/_vti_bin/lists.asmx yazarsanız, Lists Web servisine ve metotlarına ulaşabilirsiniz.

Servis İsmi Yeri Açıklama
Admin Web Servisi (_vti_adm/Admin.asmx) Deployment da kullanılan dilleri almak ve siteleri oluşturup, silmek için kullanılan yönetimsel metotlar sağlar.
    Metotlar

  • CreateSite
  • DeleteSite
  • GetLanguage
  • RefreshConfigCache
Uyarı Web Servisi (_vti_adm/Alerts.asmx) Sharepoint liste öğeleri uyarılarıyla çalışan metotları sağlar.
    Metotlar

  • DeleteAlerts
  • GetAlerts
Doğrulama Web Servisi (_vti_adm/Authentication.asmx) Form tabanlı doğrulama kullanan siteler için kullanıcı doğrulaması sağlayan client proxy si.
    Metotlar

  • Login (Giriş doğrulaması için kullanılır)
  • Mode (Mevcut sitenin doğrulama modunu döndürür)
Kopyalama Web Servisi (_vti_adm/Copy.asmx) Siteler içinde ya da arasında dosyaları kopyalamak için kullanılan metotları sağlar.
    Metotlar

  • CopyIntoItems (Dokümanı byte dizisi olarak sunucuda bir noktaya kopyalar)
  • CopyIntoItemsLocal (Dokümanı sunucu üzerinde bir noktadan diğerine kopyalar)
  • GetItem (CopyIntoItems metodu ile kullanılabilecek şekilde dokümanın byte dizisini oluşturur)
Doküman Çalışma Alanı Web Servisi (_vti_adm/Dws.asmx) Doküman çalışma alanı sitelerini ve verisini yönetebilmek için kullanılan metotları sağlar.
    Metotlar

  • CanCreateDwsUrl
  • CreateDws
  • CreateFolder
  • FindDwsDoc
  • GetDwsData
  • GetDwsMetaData
  • RemoveDwsUser
  • RenameDws
  • UpdateDwsData
Form Web Servisi (_vti_adm/Forms.asmx) Liste içeriği ile çalışırken; kullanıcı arayüzünde kullanılan formları döndüren metotları sağlar.
    Metotlar

  • GetForm
  • GetFormCollection
Resim Kütüphaneleri Web Servisi (_vti_adm/Imaging.asmx) Resim kütüphanelerini yönetmek ve oluşturmak için gerekli metotları sağlar.
    Metotlar

  • CheckSubwebAndList
  • CreateNewFolder
  • Delete
  • Download
  • Edit
  • GetItemsByIds
  • GetItemsXMLData
  • GetListItems
  • ListPictureLibrary
  • Rename
  • Upload
Liste Verisi Alan Web Servis (_vti_adm/DspSts.asmx) Sharepoint içerisindeki sitelere ve listeler için sorgulamaları çalıştırır.
    Metotlar

  • Query (Sharepoint siteleri ve listeleri için sorgulamaları çalıştırır)
Liste Web Servisi (_vti_adm/Lists.asmx) Listeler ve liste verisi ile çalışan metotları sağlar.
    Metotlar

  • AddAttachment
  • AddDiscussionBoardItem
  • AddList
  • AddListFromFeature
  • ApplyContentTypeToList
  • DeleteAttachment
  • DeleteContentType
  • DeleteContentTypeXmlDocument
  • DeleteList
  • GetAttachmentCollection
  • GetList
  • GetListAndView
  • GetListCollection
  • GetListContentType
  • GetListContentTypes
  • GetListItemChanges
  • GetListItemChangesSinceToken
  • GetListItems
  • GetVersionCollection
  • UndoCheckout
  • UpdateContentType
  • UpdateContentTypesXmlDocument
  • UpdateContentTypeXmlDocument
  • UpdateList
  • UpdateListItems
Toplantı Çalışma Alanı Web Servisi (_vti_adm/Meetings.asmx) Toplantı çalışma alanı sitelerini oluşturan ve yöneten metotları sağlar.
    Metotlar

  • AddMeeting
  • AddMeetingFromICal
  • CreateWorkspace
  • DeleteWorkspace
  • GetMeetingInformation
  • GetMeetingWorkspaces
  • RemoveMeeting
  • RestoreMeeting
  • SetAttendeeResponse
  • SetWorkspaceTitle
  • UpdateMeeting
  • UpdateMeetingFromICal
Kişi Web Servisi (_vti_adm/People.asmx) Güvenlik gruplarını bulur ve çözümler.
    Metotlar

  • ResolvePrincipals
İzinler Web Servisi (_vti_adm/Permissions.asmx) Site ve liste için izinler ile çalışan metotları sağlar.
    Metotlar

  • AddPermission
  • AddPermissionCollection
  • GetPermissionCollection
  • RemovePermission
  • RemovePermissionCollection
  • UpdatePermission
Dizin Yönetimi Web Servisi (_vti_adm/sharepointemailws.asmx) Active Directory e-posta dağıtım grupları ve onların üyeliklerini yöneten metotları sağlar.
    Metotlar

  • ChangeContactsMembershipInDistributionGroup
  • ChangeUsersmembershipInDistributionGroup
  • CreateContact
  • CreateDistributionGroup
  • DeleteContact
  • DeleteDistributionGroup
  • GetJobStatus
  • ModifyContact
  • ModifyDistributionGroup
  • RenameDistributionGroup
Site Verisi Web Servisi (_vti_adm/SiteData.asmx) Site ya da listelerden; metadata ya da liste verisi döndüren metotları sağlar.
    Metotlar

  • EnumerateFolder
  • GetAttachments
  • GetChanges
  • GetContent
  • GetList
  • GetListCollection
  • GetListItems
  • GetSite
  • GetSiteAndWeb
  • GetSiteUrl
  • GetURLSegments
  • GetWeb
Siteler Web Servisi (_vti_adm/Sites.asmx) Koleksiyon ya da site şablonu hakkında bilgi döndüren metotları sağlar.
    Metotlar

  • ExportWeb
  • GetSiteTemplates
  • GetUpdatedFormDigest
  • ImportWeb
Arama Web Servisi (_vti_adm/spsearch.asmx) Arama servisleri aracılığıyla arama yapmak için gerekli metotları sağlar.
    Metotlar

  • Query
  • QueryEx
  • Registration
  • Status
Kullanıcılar ve Gruplar Web Servisi (_vti_adm/usergroup.asmx) Kullanıcı rol tanımlamaları ve gruplar ile çalışmak için gerekli metotları sağlar.
    Metotlar

  • AddGroup
  • AddGroupToRole
  • AddRole
  • AddRoleDef
  • AddUserCollectionToGroup
  • AddUserCollectionToRole
  • AddUserToGroup
  • AddUserToRole
  • GetAllUserCollectionFromWeb
  • GetGroupCollection
  • GetList
  • GetListAndView
  • GetListCollection
  • GetGroupCollectionFromRole
  • GetGroupCollectionFromSite
  • GetGroupCollectionFromUser
  • GetGroupCollectionFromWeb
  • GetGroupInfo
  • GetRoleCollection
  • GetRoleCollectionFromGroup
  • GetRoleCollectionFromUser
  • GetRoleCollectionFromWeb
  • GetRoleInfo
  • GetRolesAndPermissionsForCurrentUser
  • GetRolesAndPermissionsForSite
  • GetUserCollection
  • GetUserCollectionFromGroup
  • GetUserCollectionFromRole
  • GetUserCollectionFromSite
  • GetUserCollectionFromWeb
  • GetUserInfo
  • GetUserLoginFromEmail
  • RemoveGroup
  • RemoveGroupFromRole
  • RemoveRole
  • RemoveUserCollectionFromGroup
  • RemoveUserCollectionFromRole
  • RemoveUserCollectionFromSite
  • RemoveUserFromGroup
  • RemoveUserFromRole
  • RemoveUserFromSite
  • RemoveUserFromWeb
  • UpdateGroupInfo
  • UpdateRoleDefInfo
  • UpdateRoleInfo
  • UpdateUserInfo
Version Web Servisi (_vti_adm/Versions.asmx) Dosya versiyonları ile çalışmak için gerekli metotları sağlar.
    Metotlar

  • DeleteAllVersions
  • DeleteVersion
  • GetVersions
  • RestoreVersion
Views Web Servisi (_vti_adm/Views.asmx) Liste view ları ile çalışmak için gerekli metotları sağlar.
    Metotlar

  • AddView
  • DeleteView
  • GetViewCollection
  • GetViewHtml
  • UpdateView
  • UpdateViewHtml
  • UpdateViewHtml2
Web Part Sayfaları Web Servisi (_vti_adm/WebPartPages.asmx) Web Part sayfaları ile çalışmak için gerekli metotları sağlar.
    Metotlar

  • AddWebPart
  • AddWebPartToZone
  • AssociateWorkflowMarkup
  • ConvertWebPartFormat
  • DeleteWebPart
  • ExecuteProxyUpdates
  • FetchLegalWorkflowActions
  • GetAssemblyMetaData
  • GetBindingResourceData
  • GetCustomControlList
  • GetDataFromDataSourceControl
  • GetFormCapabilityFromDataSourceControl
  • GetSafeAssemblyInfo
  • GetWebPart
  • GetWebPart2
  • GetWebPartCrossPageCompatibility
  • GetWebPartPage
  • GetWebPartPageConnectionInfo
  • GetWebPartPageDocument
  • GetWebPartProperties
  • GetWebPartProperties2
  • RemoveWorkflowAssociation
  • RenderWebPartForEdit
  • SaveWebPart
  • SaveWebPart2
  • ValidateWorkflowMarkupAndCreateSupportObjects
Webs Web Servisi (_vti_adm/Webs.asmx) Siteler ve altsiteleri ile çalışmak için gerekli metotları sağlar.
    Metotlar

  • CreateContentType
  • CustomizeCss
  • DeleteContentType
  • GetActivatedFeatures
  • GetAllSubWebCollection
  • GetColumns
  • GetContentType
  • GetContentTypes
  • GetCustomizedPageStatus
  • GetListTemplates
  • GetWeb
  • GetWebCollection
  • RemoveContentTypeXmlDocument
  • RevertAllFileContentStreams
  • RevertCss
  • RevertFileContentStream
  • UpdateColumns
  • UpdateContentType
  • UpdateContentTypeXmlDocument
  • WebUrlFromPageUrl
MOSS Arama Web Servisi (_vti_adm/Search.asmx) MOSS (Microsoft Office SharePoint Server) arama servisleri aracılığıyla arama yapmak için gerekli metotları sağlar. Ek olarak yönetilebilir arama özelliklerini de döndürebilen bir metot içerir.
    Metotlar

  • GetSearchMetadata (Yönetilebilir özellikleri arar)
  • Query
  • QueryEx
  • Registration
  • Status

Özet

Bu makalede size referans niteliğinde olacak Sharepoint içerisindeki bilgileri erişebilmemize yardımcı olacak Sharepoint web servislerini ve metotlarını inceledik. Daha sonraki makalelerimizde bu servisleri kullanarak Sharepoint içerisindeki bilgilere nasıl erişebileceğimize bir göz atacağız.

Kaynak:

MSDN: Web Services
SharePoint Products and Technologies Customization Policy

Bir sonraki makalelerde görüşmek üzere. İyi çalışmalar...


Tayfun AKCAY

tayfun@tayfunakcay.com