Autor del tema
#0
Cloudflare Worker ile link kısaltma servisi oluşturmak, hem eğlenceli hem de öğretici bir süreç. Öncelikle, Cloudflare’ın sunduğu bu hizmet sayesinde, JavaScript kullanarak sunucu tarafında çalışan kodlar yazabiliyoruz. İşin en güzel yanı, bu kodları herhangi bir sunucuya ihtiyaç duymadan yazabiliyor olmamız. Kısaca, Cloudflare Worker’lar ile hızlı ve etkili bir şekilde uygulama geliştirmek mümkün. Hadi, sürece birlikte bakalım.
İlk adım olarak, Cloudflare hesabınıza giriş yaparak Workers sekmesine gitmelisiniz. Eğer henüz bir hesabınız yoksa, birkaç dakikada oluşturabilirsiniz. Giriş yaptıktan sonra, yeni bir worker oluşturun. Bu, tarayıcınızın sol üst köşesindeki "Create a Service" butonuna tıklayarak başlıyor. Burada size bir isim vermeniz isteniyor. Örneğin, "link-kisaltma" güzel bir seçim olabilir. Sonrasında, işin teknik kısmına geçiyoruz; yani, kod yazmaya.
İlk olarak, basit bir HTTP isteği alacak ve yanıt verecek bir yapı oluşturmamız gerekiyor. Bu kısımda, `addEventListener` fonksiyonunu kullanarak bir "fetch" olayı dinleyeceğiz. Bu, Cloudflare Worker'larımızın temelini oluşturuyor. Bir örnek vermek gerekirse;
```javascript
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
```
Burada, gelen her isteği `handleRequest` fonksiyonuna yönlendiriyoruz. Şimdi, `handleRequest` fonksiyonunu tanımlayarak devam edelim. Bu fonksiyon, gelen istekten URL’yi alacak ve eğer bu URL, daha önce kısaltılmışsa, kısaltılmış linke yönlendirecek. Yoksa, yeni bir kısaltma oluşturmak için bir veri tabanına (bu durumda bir JSON nesnesine) kaydedilecek.
JSON nesnesini tanımlamak için, örneğin şu şekilde yapabilirsiniz:
```javascript
const urlDatabase = {};
```
Eğer kullanıcıdan gelen bir istek mevcutsa, onu kontrol edip yönlendirmemiz gerek. Bu noktada, `URL` sınıfını kullanarak isteği işleyebiliriz. Eğer gelen URL daha önce kısaltılmışsa, kullanıcının o linke yönlendirilmesini sağlamak için:
```javascript
const redirectUrl = urlDatabase[shortenedKey];
return Response.redirect(redirectUrl, 301);
```
Bu temel yapı tamamlandıktan sonra, kullanıcıdan gelen istekleri işlemek için gerekli kısaltma algoritmasını yazmalıyız. Kısaltma işlemi için basit bir yöntem olarak, URL'yi belirli bir uzunluktaki rasgele karakterlerle eşleştirebiliriz. Örneğin, şunları kullanabilirsiniz;
```javascript
function generateShortKey(length) {
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let result = '';
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * characters.length));
}
return result;
}
```
Bu fonksiyon, belirttiğimiz uzunlukta rastgele bir anahtar oluşturacak. Kısaltma işlemi sırasında, bu anahtarı `urlDatabase`’ye kaydetmeyi unutmamak gerek... Yani, her yeni kısaltma oluşturduğunuzda, anahtar ve URL çiftini burada güncellemelisiniz.
Son olarak, tüm bu işlemleri birleştirdiğimizde, artık çalışır durumda bir link kısaltma servisine sahibiz. Tüm bu adımları tamamladıktan sonra, Cloudflare Worker’ınızı kaydedin ve test edin. Her şey yolundaysa, kullanıcılarınız artık daha kısa ve etkili linkler kullanabilir.
Son söz olarak, bu süreç sadece bir başlangıç. Cloudflare Worker ile daha karmaşık ve ilginç projeler geliştirebilirsiniz. Yaratıcılığınızı konuşturun ve denemekten çekinmeyin. Unutmayın, her yeni deneme, yeni bir öğrenme fırsatıdır...
İlk adım olarak, Cloudflare hesabınıza giriş yaparak Workers sekmesine gitmelisiniz. Eğer henüz bir hesabınız yoksa, birkaç dakikada oluşturabilirsiniz. Giriş yaptıktan sonra, yeni bir worker oluşturun. Bu, tarayıcınızın sol üst köşesindeki "Create a Service" butonuna tıklayarak başlıyor. Burada size bir isim vermeniz isteniyor. Örneğin, "link-kisaltma" güzel bir seçim olabilir. Sonrasında, işin teknik kısmına geçiyoruz; yani, kod yazmaya.
İlk olarak, basit bir HTTP isteği alacak ve yanıt verecek bir yapı oluşturmamız gerekiyor. Bu kısımda, `addEventListener` fonksiyonunu kullanarak bir "fetch" olayı dinleyeceğiz. Bu, Cloudflare Worker'larımızın temelini oluşturuyor. Bir örnek vermek gerekirse;
```javascript
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
```
Burada, gelen her isteği `handleRequest` fonksiyonuna yönlendiriyoruz. Şimdi, `handleRequest` fonksiyonunu tanımlayarak devam edelim. Bu fonksiyon, gelen istekten URL’yi alacak ve eğer bu URL, daha önce kısaltılmışsa, kısaltılmış linke yönlendirecek. Yoksa, yeni bir kısaltma oluşturmak için bir veri tabanına (bu durumda bir JSON nesnesine) kaydedilecek.
JSON nesnesini tanımlamak için, örneğin şu şekilde yapabilirsiniz:
```javascript
const urlDatabase = {};
```
Eğer kullanıcıdan gelen bir istek mevcutsa, onu kontrol edip yönlendirmemiz gerek. Bu noktada, `URL` sınıfını kullanarak isteği işleyebiliriz. Eğer gelen URL daha önce kısaltılmışsa, kullanıcının o linke yönlendirilmesini sağlamak için:
```javascript
const redirectUrl = urlDatabase[shortenedKey];
return Response.redirect(redirectUrl, 301);
```
Bu temel yapı tamamlandıktan sonra, kullanıcıdan gelen istekleri işlemek için gerekli kısaltma algoritmasını yazmalıyız. Kısaltma işlemi için basit bir yöntem olarak, URL'yi belirli bir uzunluktaki rasgele karakterlerle eşleştirebiliriz. Örneğin, şunları kullanabilirsiniz;
```javascript
function generateShortKey(length) {
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let result = '';
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * characters.length));
}
return result;
}
```
Bu fonksiyon, belirttiğimiz uzunlukta rastgele bir anahtar oluşturacak. Kısaltma işlemi sırasında, bu anahtarı `urlDatabase`’ye kaydetmeyi unutmamak gerek... Yani, her yeni kısaltma oluşturduğunuzda, anahtar ve URL çiftini burada güncellemelisiniz.
Son olarak, tüm bu işlemleri birleştirdiğimizde, artık çalışır durumda bir link kısaltma servisine sahibiz. Tüm bu adımları tamamladıktan sonra, Cloudflare Worker’ınızı kaydedin ve test edin. Her şey yolundaysa, kullanıcılarınız artık daha kısa ve etkili linkler kullanabilir.
Son söz olarak, bu süreç sadece bir başlangıç. Cloudflare Worker ile daha karmaşık ve ilginç projeler geliştirebilirsiniz. Yaratıcılığınızı konuşturun ve denemekten çekinmeyin. Unutmayın, her yeni deneme, yeni bir öğrenme fırsatıdır...