İlk API'mi Kurdum — Hono ve Cloudflare Workers

2. Günde siteyi ayağa kaldırmıştım ve sonunda şunu söylemiştim: “Sıradaki adım, küçük bir API kurup HTTP’nin nasıl işlediğini görmek.” Bugün tam olarak bunu yaptım.

Önce üç kavram

API, bir programın başka bir programdan bir şey isteyebilmesini sağlayan aracı. Bir restoranda garson gibi düşün: sen mutfağa kendin girmezsin, garsona ne istediğini söylersin, o gidip getirir. Senin tarayıcın da bir API’ye “bana şunu ver” der, API de cevap verir.

Endpoint, o API’nin menüsündeki tek bir yemek gibi. Belirli bir adres, ve o adrese gidince belirli bir cevap alıyorsun. Benimki: /hello adresine gidersen, sabit bir mesaj dönüyor.

JSON, programların birbirine veri gönderirken kullandığı ortak, sade bir yazım biçimi. Benimki şuna benziyor:

{ "mesaj": "Merhaba, API çalışıyor" }

Bir formdaki kutuya yazılmış cevap gibi düşünebilirsin: “mesaj” diye bir alan var, içine “Merhaba, API çalışıyor” yazılmış. Neredeyse bütün API’ler bu dille konuşuyor, çünkü hem insan hem bilgisayar için okunması kolay.

Hono ve Cloudflare Workers ne işe yarıyor

Bir API’yi sıfırdan yazmak da mümkün, ama gelen her isteği kontrol etmek, doğru cevabı paketlemek gibi tekrar eden işler var. Hono, bu sıkıcı işleri benim yerime yapan, çok hafif bir araç — ben sadece “böyle bir istek gelirse şunu döndür” diyorum, gerisini o hallediyor.

Cloudflare Workers ise bu API’nin yaşadığı yer — tıpkı blog’un yaşadığı yer gibi. Normalde bir API’yi çalıştırmak için 7/24 açık bir sunucu kiralayıp bakımını yapman gerekir; Workers’ta kodunu yüklüyorsun, Cloudflare onu dünyanın dört bir yanındaki veri merkezlerinde otomatik çalıştırıyor.

Ne yaptım

Hono ile küçük bir proje oluşturup, tek bir şey yapan bir endpoint yazdırdım: birisi /hello adresine gittiğinde sabit bir “merhaba” mesajı dönsün. Yerelde denedim, çalıştı. Sonra Cloudflare’e yükledim, kendi adresinde (blog-api.myines.workers.dev/hello) de aynı mesajı gördüm — artık internette, herkese açık.

Yedinci hata: yanlış yere kurulum

Bugüne kadarki hataların hepsi kod ya da ayarla ilgiliydi, bu sefer bir düzen hatası yaptım. Yeni API projesini kurarken, farkında olmadan onu blog klasörünün içine kurdurdum — oysa ayrı, kendi başına bir proje olması gerekiyordu, çünkü bir sitenin önü (frontend) ile arkada çalışan API (backend) genelde birbirinden bağımsız tutulur. Karışık dururlarsa, biri diğerinin dosyalarını yanlışlıkla içine alabilir.

Düzeltmek istediğimde ikinci bir engelle karşılaştım: Windows, o an “içinde bir işlem çalışan” bir klasörü taşımama ya da silmeme izin vermedi. Bu, daha önce yaşadığım PATH sorununa benziyordu — bazı şeyler, ancak arkadaki süreç tamamen kapandıktan sonra mümkün oluyor. Dosyaları önce doğru yere kopyaladım, orada projeyi yeniden bağladım, sonra arka planda unutulmuş bir süreci kapatıp eski, gereksiz klasörü sildim. Sonunda iki proje (blog ve API) birbirinden tamamen ayrıldı.

Sırada ne var?

Şu an API’m hep aynı sabit cevabı veriyor, gerçek bir veri yok. Sıradaki adım, ona gerçek bir veritabanı (Neon Postgres) bağlamak — blog’uma yorum ve beğeni gibi özellikler ekleyebilmek için. Orada SQL’i ilk kez gerçek bir ihtiyaç üzerinden öğreneceğim.

Yorumlar