Mayıs 25

Lazarus, Firebird, Brook Framework, REST

Bir süre önce grupta da tartışılan android ya da el terminalinden  firebird bağlantısı Android Günlerinde bir kaç geliştiriciye sordum ve genel olarak verdikleri cevap bu cihazların veritabanı sistemlerine direk bağlanıp oradan bilgi çekip işleyecek kadar güce sahip olmadıkları ve bu yaklaşımın yanlış olduğuydu. (Doğrudur yanlıştır ben onların yalancısıyım) Önerileri ise sunucuda gelen taleplere cevap veren bir yazılım olsun ve web üzerinden basit HTTP işlemleriyle bilgi alıp göndermeyi önerdiler. Bu işler nasıl yapılır diye araştırırken REST ile karşılaştım. REST kısaca istemci ve sunucu arasında HTTP protokolü ve PUT, GET, POST ve DELETE komutlarını kullanarak veri tabanıyla iletişimi sağlayan bir kavram. (Standart ya da bir yazılım değil çünkü herkes kendi rest yazılımını kendi geliştiriyor. Standart olan put, get, delete, post komutlarının kullanımı) JAVA, PHP, Python gibi dillerde bu işler tabi çok kolay hemen moduller vs. bulabiliyorsunuz. Peki inatla pascal olsun bizden olsun derseniz ne yapacaksınız ? Burada kullanacağınız teknoloji tabi ki eskilerden kalma cgi-bin. Peki nasıl ? Bunun için önce xampp  paketini kuruyoruz ve bilgisayarımızda Apache, mysql, php, tomcat gibi yazılımların hepsi bir anda kuruluyor ve control center yazılımıyla istediğiniz sunucuları açmaya başlıyorsunuz.

Ardından sıra Lazarus’a geliyor. Lazarus’a Brook Framework  kuruyorsunuz. Web sitesinden ve demolarından da anlaşıldığı üzere Lazarus’a web özellikleri katmak için epey çabalayan ve güzel işler ortaya çıkaran bir çalışma. Adı üstünde brook bir framework ve kendine has bir çatısı ve bu çatıya uygun bir şekilde ilerlemek gerekiyor. Bende bunun için en kolay yöntem olan örneklerden rest örneğini alıp uygun yerlerini kendime göre değiştirdim. Yalnız bu arada bazı örnekler ek paketler istiyor bu paketleride sitesinde plugins bölümünden bulabiliyorsunuz.

Yazılımın kendi rest örneğini daha önce adres defterinde oluşturduğumuz adres.fdb’i kullanacak şekilde değiştirdim. Bunun için ilk önce  database ayarlarını firebird’e uyarladım. Bunuda dbutils.pas dosyasını düzenleyerek yaptım;

Bu bağlantıyla local’de bulunan firebird’e adres.fdb veritabanı için bağlantı kurmuş olduk.  Bu işlemin ardından tablo için person.pas dosyasını kisiler.pas olarak değiştirdim ve Tperson sınıfınıda Tkisiler sınıfı olarak adlandırdım. Burada sınıfın adının tabloyla ve içerisinde tanımladığımız property’lerin fieldlarla aynı olması şart. Siz burada aslında kendi tablonuzu fieldlarıyla birlikte satır satır tanımlayıp bir class oluşturuyorsunuz. Örnek olarak adi field’ının dışında ek olarak soyadi field’ınıda ekledim.

 

Lazarus’da son işimiz post,put,get metodlarının tanımlandığı unit sınıfı.  Bu işlemler hem kayıt güvenliği için hemde sunulan kodun nasıl bir yöntemle sunulacağını tanımlamanız için önemli .

Bu işleminde tamamladıktan sonra çalıştır demeyi hiç düşünmeyin çünkü bu şekilde çalışacak bir uygulamanız yok şuan. GGI uygulamaları web sunucusu üzerinden çalışır bu yüzden sadece kodu derleyip cgi1.bf dosyasını xampp’ı kurduğumuz klasörde cgi-bin klasörünün altına kopyalıyoruz.

Şimdi ise bu uygulamaya POST metodu ile kayıt ekleyip GET metodu ile kayıtları göstermek kaldı. Xampp kurduğumuz klasörün altındaki htdocs klasörü bizim web sunucumuzun ana klasörüdür. Buraya deneme.html adında bir html dosyası oluşturup içerisine ;

Bu html sayfasında ise iki önemli nokta var biri kullanılan input type’ların adlarının field’larla aynı olması diğeri ise method olarak POST kullanılırsa kayıt işlemi, GET methodu kullanılırsa kayıtların gösterilmesi işlemi yapılacağı.

Burada anlatılan yöntem ile pascal kullanarak verilerinize ve kayıt işlemlerinizi değişik platformlardan hatta web browser üzerinden erişip işlem yapabiliyor ve bu işlemleri denetleyebiliyoruz.

Umarım okuduğunuz bu yazının çalışmalarınızda faydası olur. Yeni bir yazıda görüşmek üzere.

 

 

 

Did you like this? Share it:

Etiketler:, , , , ,

Posted 25 Mayıs 2014 by admin in category "Brook Framework", "Delphi", "Firebird", "İnternet", "Lazarus", "Pascal", "Programlama", "Veritabanı

1 COMMENTS :

  1. By Marciano on

    kisiler.pas(1,1) Fatal: Compilation aborted Bu hata olduğunu

    Reply

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir