Geodi Feed Api ( FeedHandler )

Uygulamaların GEODI ile entegre olup veri sağlaması için üç temel model kullanılabilmektedir. Modellerin tamamı uygulamanın izin verdiği içeriklerin , izin verdiği kullanıcılar için görülebilir olmasını sağlamayı hedeflemektedir.

Entegre olunan uygulamadan aramaya açık doküman, varsa meta verileri, yetkiler, geri dönüş yolunun sağlanabilmesi beklenmektedir. GEODI ye kaynak veri sağlamak için bu servisi kullanabilirsiniz. Sağladığınız kaynağa bir arama sonucunda ulaşıldığında açılacak uygulamayı belirtebilirsiniz.

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

* Feed sırasında iletilen içerik proje üzerinde yedekleme açılmadığı sürece Geodi üzerinde tutulmaz. 


  • Geodi Feed API - Besleme Yöntemi (APP → GEODI )

    Uygulamanız sürekli ayakta ise, tetikleyecek iç yöntemler mevcut ise veya bir Web uygulamasına sahip değilseniz istediğiniz kadar içeriği, istediğiniz zaman göndermek için bu yöntemi kullanabilirsiniz

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

    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

  • Geodi Feed API - Gömülü Kod Desteği ( Connector/GeodiEnumerator ) ( GEODI ← → APP)

    Uygulamanız bir kütüphane veya adaptör ise, Aktif çalışan bir uygulamanız yoksa bu yöntem ile beslemeyi tercih edebilirsiniz. 

    • Enumerator (Connector/Adapter) Kavramı

      GEODI farklı veri kaynaklarından içerik sağlamak için IContentReaderEnumarator interface gerçekleyen sınıflardan faydalanır.

      Gerçekleme Geriye IGeodiContent'leri dönmelidir. Hazır IGeodiContent gerçeklemelerinden yararlanılabilir veya GeodiContentBase'den türeyen sınıf yazılabilir.

      ContentType değeri GEODI tarafından tanınmayan yeni bir tip oluşturulmuşsa ContentReaderBase gerçeklemeside yapılmalıdır. Bir Viewer yoksa WebContentViewerBase gerçeklemesi yapılabilir. Viewer Zorunlu değildir.

    • GEODI için yeni dosya tipi tanımlama

      Bir içeriğe dönüş yapmak, özelliklerini belirlemek için IGeodiContent kullanılır.  

      ContentReaderBase'den türeyecek bir gerçekleme ile istenilen uzantının okunması sağlanabilir.

        public class MyContentReader : ContentReaderBase
          {
              public MyContentReader()
                  : base()
              {
                  this.DisplayName = "MyContentReader";
                  this.Category = Geodi.CoreV1.Defines.CategoryInfoDefines.Other;
              }
      
              MyContentReader(IGeodiContent Source)
                  : base(Source)
              {
                  this.DisplayName = "MyContentReader";
                  this.Category = Geodi.CoreV1.Defines.CategoryInfoDefines.Other;
      
              }
      
      
              public override string[] ContentTypeKeys
              {
                  get
                  {
                      return new string[] { "filecontent:.myfileextension" }
                  }
              }
      
              public override IContentReader Create(IGeodiContent Source)
              {
                  return new MyContentReader(Source);
              }
      
      
              public override IEnumerable<IContentSplitter> GetSectionSplitters(GeodiEnumaratorScopeArgs Args)
              {
       
       
      			//StringContentSplitter gerçeklemesi StringContentSplitter array alarak birleştirilmiş alt sayfaları işleyebilir. 
      			//Her Splitter için Section bilgiside verilerek Custom Viewer için ihtiyaç duyulacak sayfa, bbox ... gibi tekrar erişim bilgileri index'e eklenebilir.
       
      			yield new StringContentSplitter("Örnek Tanım içeriği");
      			yield new StringContentSplitter("Örnek Metin");
       
                  //yield new StringContentSplitter(ReadPage1(this.CurrentContent.GetStream()));
                  //yield new StringContentSplitter(ReadPage1(this.CurrentContent.CreateOrGetLocalFileSystemPath()));//CreateOrGetLocalFileSystemPath metodu lokal dosya isteyen apiler için zip/email/web gibi kaynaklardan veriyi indirip fiziksel dosya yolu getirir.
      
      
      			//Tarih, Geometri, İsim, KM  gibi tipi bilinen değerler HeaderArraySplitter object array IContentSplitter gerçeklemesi ile döndürülebilir.
      			List<object> HeaderItems = new List<object>();
      					//DynamicValue<IGeometry> geom = new DynamicValue<IGeometry>(geoApiGeom);
                          //geom.Attributes["ItemType"] = "Geometry";
                          //geom.Attributes["DisplayName"] = MyLabel;
      					//HeaderItems.Add(geom);
      			HeaderItems.Add(DateTime.Now);
      			yield new HeaderArraySplitter(HeaderItems)
      
              }
      
      
      
              public override string GetIconName(string ContentTypeKey)
              {
      			//GUI/Icons klasöründe olan bir yol dönülmelidir.
      			return "Content/file.myfileextension";
              }
          }
  • Geodi ContentObject - İçerik Tanım Nesnesi

    Geodi Data Extraction API ( Formatter ) ve Geodi Feed Api (FeedHandler) servislerine daha detaylı içerik sağlamak için bu nesneden yararlanabilirsiniz.



  File Modified
No files shared here yet.