Geodi Feed API - Uygulama Servisleri ile Entegrasyon Yöntemi ( GEODI → APP)




GEODI tarafından ilgili uygulamadan değişen verilerin servisler yolu ile alınmasına dayalı entegrasyon modelidir. ECM,CMS, DMS uygulamaları ile içeriğini webservis, restapi ile sağlayabilen tüm uygulamalar bu modeli kullanabilir. Sağlanacak servis için farklı standartlara destek verilmektedir.

  • Uygulamanıza ait Web Servisleri
  • GEODI Servis modeli
  • Enterprise Content Managment (ECM) 

  • Content Managment System (CMS) 

  • Document Content Managment (DMS) 
  • Sitemap xml, News Sitemap xml


Bir web uygulamasına sahip iseniz, uygulamanız sürekli ayakta değil ise  uygulamanızın GEODI tarafından tetiklenmesi için bu yöntemi kullanabilirsiniz

Uygulamanıza ait Web Servisleri

Settings\FeedEnumeratorMeta eklenecek tanım dosyaları ile Uygulamaya ait özel webservislerden veri alınması sağlanabilir. Tanım dosyası eşlemeler için makro kullanır. Makro dili C# dır.

İçerikleri alma, yetkilendirme ile ilgili servislere ait dokümantasyonu iletirseniz tanım dosyalarını sizin için biz yazabiliriz.

GEODI Servis Bağlantısı Standardı

Geri besleme için uygulama yetki destekli bir servis üzerinden doküman bilgilerini dönebilmelidir. GEODI arayüzlerinden uygulamaya ait

  • Rest Api Servis yolu (URL)
  • Uygulama servislerini çağrılması için Kullanıcı Adı,Şifre (LDAP veya Kerberos User)
    • ( Uygulama openid standartlarını destekliyorsa uygulamadan uzun süre geçerli bir token alınıp kullanılabilir. )

bilgileri alınacak, sistem belirlenen zamanlarda uygulamadan servis üzerinde isteklerde bulunacaktır. 

*  Sık Sorulan Sorular linkindeki uyarılara ve feed api için önemli bilgilere buradan ulaşabilirsiniz.

Gerçeklenmesi beklenen servis metodları

GetContents
Açıklama

Uygulamadaki değişikleri takip etmek, içerikleri almak için kullanılan metoddur. Ayarlanan zamanlarda bu servis çağrılarak değişen, eklenen içerkiler ile ilgili bilgi alınır.

Aynı parametreleri alan ve aynı nesneyi dönen bir .net soap api hazırlanmışsa metod üzerine [ScriptMethod(ResponseFormat = ResponseFormat.Json)] attribute eklenmelidir.

İstek[ServiceURL]?m=GetContents
HttpMethodGET, POST
Beklenen Hatalar

401 Unauthorized access / Access denied

403 Forbidden

511 Network Authentication Required

Ek Bilgiler

Api Credential (NTLM,Digest,Basic Authentication) : GEODI için ayarlanmış api kullanıcısı. Uygulama bu kullanıcını yetkisi dahilindeki tüm içerikleri dönmelidir.

ChangeKey: İlk istekte tüm veriyi almak için iletilmez. İletilmesi halinde GEODI bu değerden sonra değişen içeriklerin dönmesini bekler. GEODI bu değeri son işlediği GetContents sonucundaki ChangeKey değerinden alır. Sonraki zamanlanmış taramada iletir. Uygulama geri döndüğünde değişimi takip için kullanabileceği herhangi bir değer gönderebilir.

Page : GetContents servisinden bir PageCount dönmüşse şu an hangi sayfanın istendiğini gösterir. Bu parametre ile CurrentKey parametreside iletilir

Beklenen Sonuç

Çoklu ContentObject JSON dönülmesi beklenir. Geodi ContentObject - İçerik Tanım Nesnesi#İçerikTanımNesnesi-Çokluİçerik adresinden nesne detaylarına ulaşılabilir

Örnekler
//Request : [ServiceURL]?m=GetContents + Credential
 {
	ChangeKey:'2015-05-07 12:10:00',
	PageCount:5,
	Contents : [
		{ 
			ContentURL : '~/MyApplication/Content.php?id=1465',
			DisplayName:'Kontrol Listesi Dokümanı',
			ContentDate:'Mon, 04 May 2015 07:38:28 GMT',
			ViewURL : '~/MyApplication/ContentView.php?id=1465',
			Permission : {  Permit : ['S-151...']  }
		},
		{ 
			ContentURL : '~/MyApplication/Content.php?id=1496',
			DisplayName:'Örnek Çalışmalar Notu',
			Content: {
				Extension:'.txt',
				Content: 'Kızılay civarında yapılan çalışmalar eklenmemiş.'
			}
			Permission : { Permit : ['S-151...'] }
		}
	]
 }
//Request : [ServiceURL]?m=GetContents + Credential&CurrentKey=2015-05-07 12:10:00&Page=1
 {
	ChangeKey:'2015-05-07 12:10:00',
	PageCount:5,
	Contents : [
		{ 
			ContentURL : '~/MyApplication/Content.php?id=1469',
			DisplayName:'Kontrol Listesi Dokümanı',
			ContentDate:'Mon, 04 May 2015 07:38:28 GMT',
			ViewURL : '~/MyApplication/ContentView.php?id=1469',
			Permission : {  Permit : ['S-151...']  }
		}
	]
 }
//Request : [ServiceURL]?m=GetContents&ChangeKey=2015-05-07%2012%3A10%3A00 + Credential
 {
	ChangeKey:'2015-05-08 12:10:00',
 }

//Değişen yok
//Request : [ServiceURL]?m=GetContents&ChangeKey=2015-05-08%2012%3A10%3A00 + Credential
 {
	ChangeKey:'2015-05-09 12:10:00',
	Contents : [
		{ 
			ContentURL : '~/MyApplication/Content.php?id=1811',
			DisplayName:'Yeni Doküman',
			ContentDate:'Mon, 06 May 2015 10:15:20 GMT',
			ViewURL : '~/MyApplication/ContentView.php?id=1811',
			Permission : {   Permit : ['S-151...','Koordinator']  }
		}
	
	]
 }
Örnek uygumalar

Enterprise Content Managment (ECM) , Content Managment System (CMS) , Document Content Managment (DMS)  Entegresyonları

WebDAV desteği bulunmakla birlikte bu destek entegre olunacak uygulamanın yetkilerinin dikkate alınması için yeterli değildir. WebDAV standardı bir ECM için yeterli ön bilgiyi sunmaz.

Entegre olunan uygulamaya ait  özel yetki olmaksızın verilerinin GEODI tarafından alınıp GEODI  güvenlik politikası dahilinde yayınlanmasının yeterli olduğu durumlarda  WebDAV, FTP, WebSite, Standart Sitemap xml kullanılabilir.


CMIS 1.1 ( Content Management Interoperability Services ) gerçekleyen sistemler servisleri varsayılanda pasif getirmekte, veya  eklenti yükleme gerektirmekteler.( http://docs.oasis-open.org/cmis/CMIS/v1.1/errata01/os/CMIS-v1.1-errata01-os-complete.html#x1-5540003 )  Ayrıca bu yazılımlar kendi apileri ile daha yüksek performans ve daha fazla özellik sağlayabiliyorlar. CMIS entegrasyonu kısa vadeli hedeflerimiz arasında yer almamaktadır.


Sitemap xml, News Sitemap xml

Urlset içeriğinde url loc, lastmod değerleri bulunmalıdır. bu değerlere göre son değişim kontrol edilerek tarama yapılır. Gösterim ve tarama için loc üzerinde belirtilen yol kullanılır.  Credential ile istek desteklenir.

Bu yöntemde loc ve lastmod yanında Sistem(LDAP,Kerberos) kullanıcı gurubu ve kullanıcı bilgileri verilebilir. Özel Rol tabanlı/detay yetkiler desteklenmektedir.

Örnek
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<url>
		<loc>http://mysite/mydoc?id=125</loc>
		<lastmod>2016-06-15T14:10:00Z</lastmod>
		<!--Opsiyonel-->
		<permission>
				<permit>S-1515...,</permit>
				<deny/>
		</permission>
</url>


</urlset>