iToverDose/Yazılım· 4 HAZIRAN 2026 · 04:03

Pascal ile REST API Geliştirmenin Sırları: Horse ve CrabPascal

Pascal dilinin masaüstü uygulamalarından kurtulup arka uç geliştirmeye mi geçmek istiyorsunuz? Horse framework ve CrabPascal sayesinde sadece birkaç satır kodla tam teşekküllü REST API’ler oluşturabilirsiniz. İşte nasıl yapıldığına dair adım adım rehber.

DEV Community3 dk okuma0 Yorumlar

Pascal dili, uzun yıllardır masaüstü uygulamalarıyla anılan bir programlama dili olmasına rağmen, modern geliştiriciler artık onu arka uç sistemlerinde de kullanmanın yollarını arıyor. Horse framework’ü ve CrabPascal derleyici aracı sayesinde, Pascal kodlarınızdan doğrudan çalışabilir REST API’ler oluşturmak mümkün hale geliyor. Bu yaklaşım, Delphi ekosistemine hâkim geliştiriciler için hem tanıdık hem de son derece verimli bir çözüm sunuyor.

Horse Framework ve CrabPascal: Neden Bu Kombinasyon?

Horse framework’ü, HTTP isteklerini yönetmek, JSON verilerini işlemek ve middleware benzeri fonksiyonlar oluşturmak için tasarlanmış hafif bir araçtır. CrabPascal ise, bu framework’ü Pascal projelerinize entegre eden ve çalıştırılabilir REST sunucuları oluşturan bir runtime ortamı sağlıyor. Örneğin, aşağıdaki gibi basit bir API oluşturabilir ve doğrudan .dpr dosyanızdan çalıştırabilirsiniz:

  • CRUD API örneği: examples/crud/ dizinindeki proje, tam teşekküllü bir ürün yönetim sistemi sunuyor.
  • Zaman sunucusu: examples/time-server/ dizinindeki proje, tarih ve saat bilgilerini döndüren basit bir API sağlıyor.
  • Kayıt defteri: examples/agenda/ dizinindeki proje, kişisel kayıtları yönetmek için kullanılabiliyor.

Tüm bu örnekler, CrabPascal’ın yerleşik runtime ortamı sayesinde herhangi bir ek derleyiciye (örneğin gcc) ihtiyaç duymadan çalıştırılabiliyor.

En Basit REST API Örneği

Aşağıdaki örnek, Pascal ile ne kadar basit bir REST API oluşturabileceğinizi gösteriyor. Bu API, /ping endpoint’ine yapılan istekleri yanıtlıyor:

program SimpleAPI;
uses Horse, System.JSON;

begin
  THorse.Get('/ping', procedure(Req: THorseRequest; Res: THorseResponse; Next: TNextProc)
  var J: TJSONObject;
  begin
    J := TJSONObject.Create;
    J.AddPair('message', 'pong');
    Res.Send(J.ToJSON);
  end);
  THorse.Listen(9000);
end.

Bu kodu çalıştırmak için aşağıdaki komutları kullanabilirsiniz:

crab-pascal run SimpleAPI.dpr
curl 

Çıktı olarak şu yanıtı almanız gerekiyor:

{"message":"pong"}

Gerçek Dünya Uygulaması: CRUD API

examples/crud/crud.dpr dosyasında yer alan proje, bir ürün yönetim sistemini simüle ediyor. Bu API, ürünlerin listelenmesi, eklenmesi, güncellenmesi ve silinmesi gibi temel CRUD işlemlerini destekliyor. Örneğin, ürünleri listelemek için kullanılan endpoint şu şekilde tanımlanıyor:

THorse.Get('/produtos', procedure(Req, Res, Next)
begin
  Res.Send<TJSONObject>(TProdutoService.ListarProdutos);
end);

Yeni bir ürün eklemek için kullanılan endpoint ise şu şekilde:

THorse.Post('/produtos', procedure(Req, Res, Next)
var json: TJSONObject;
begin
  json := Req.Body<TJSONObject>;
  Res.Send(TProdutoService.CriarProduto(
    json.GetValue('nome').Value,
    json.GetValue('categoria').Value,
    StrToFloatDef(json.GetValue('preco').Value, 0),
    StrToIntDef(json.GetValue('estoque').Value, 0)
  ));  
end);

Bu API’yi çalıştırmak için aşağıdaki komutları kullanabilirsiniz:

cd examples/crud
crab-pascal run crud.dpr

API’yi curl ile Test Etmek

API’nizi test etmek için curl komutlarını kullanabilirsiniz. Örneğin, tüm ürünleri listelemek için:

curl 

Yeni bir ürün eklemek için:

curl -X POST  \
  -H "Content-Type: application/json" \
  -d '{"nome":"Notebook","categoria":"Eletrônicos","preco":3499.90,"estoque":10}'

Belirli bir ürünü ID’sine göre almak için:

curl 

Postman ile API Geliştirme Deneyimini Yükseltmek

API’nizi geliştirirken Postman gibi araçlardan faydalanabilirsiniz. Örneğin, çalışan bir API’yi Postman’e aktararak daha kolay testler yapabilir ve API koleksiyonlarınızı saklayabilirsiniz. Bu sayede, regresyon testlerini otomatikleştirmek de mümkün hale geliyor. Mintlify belgelerinde, tüm örnek API’ler için hazırlanmış bir Postman koleksiyonu da bulunuyor.

Port Ayarlarını Yönetmek

Çoklu API’ler geliştirirken her birinin farklı portlarda çalışması gerekebilir. Bu durumda, CrabPascal’ın yapılandırma dosyası olan crabpascal.toml dosyasını kullanabilirsiniz. Örneğin, varsayılan portu 9000 olarak ayarlamak için:

[runtime]
default_http_port = 9000

Bu ayar sayesinde, yerel geliştirme ortamınızda birden fazla API’yi aynı anda çalıştırabilirsiniz.

Kısıtlamalar ve Geleceğe Bakış

Horse framework’ünün CrabPascal üzerindeki desteği, temel rotalama ve JSON işleme özelliklerini kapsıyor. Delphi ekosistemindeki tüm middleware eklentilerinin kullanılabilmesi henüz mümkün değil. Ancak, yeni HTTP özellikleri hakkında sürekli güncellenen yayın notlarını takip etmek, projenizin ihtiyaçlarını karşılamasına yardımcı olacaktır. Pascal dilini kullanarak REST API geliştirmeyi öğrenmek veya hızlı prototipler oluşturmak isteyenler için mevcut örnekler oldukça faydalı.

Pascal, Horse ve CrabPascal’in birleşimi, Delphi geliştiricilerine hem tanıdık hem de güçlü bir arka uç geliştirme deneyimi sunuyor. Tüm bu araçların bir arada kullanılmasıyla, sadece birkaç satır kodla tam teşekküllü REST API’ler oluşturmak mümkün hale geliyor. Geliştirmeye examples/crud/ dizinindeki örneklerle başlayabilir, ardından kendi API’nizi oluşturabilirsiniz.

Yapay zeka özeti

Pascal dilinde REST API geliştirmeye meraklı mısınız? Horse framework ve CrabPascal ile sıfırdan API oluşturarak backend geliştirmenin inceliklerini keşfedin.

Yorumlar

00
YORUM BIRAK
ID #6Y0CQW

0 / 1200 KARAKTER

İnsan doğrulaması

4 + 3 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.