top of page

Geliştirme Framework’leri ve API’ler (Development Frameworks & APIs)

Yazarın fotoğrafı: Songül ÖZÜGÜRLER
Songül ÖZÜGÜRLER
28 Nis
4 dakikada okunur

Geliştirme Framework’leri ve API’ler (Development Frameworks & APIs)

Web sunucularının farklı dillerde web uygulamalarını barındırabilmesinin yanında, web uygulamasının temel dosyalarını ve işlevlerini geliştirmeye yardımcı olan birçok yaygın web geliştirme framework’ü de vardır.

Web uygulamalarının karmaşıklığı arttıkça, modern ve gelişmiş bir web uygulamasını sıfırdan oluşturmak zorlaşır. Bu nedenle popüler web uygulamalarının çoğu, web framework’leri kullanılarak geliştirilir.

Çoğu web uygulaması benzer temel işlevlere sahip olduğu için (örneğin kullanıcı kaydı gibi), framework’ler bu işlevleri hızlı şekilde uygulamayı ve front-end bileşenlerine bağlamayı kolaylaştırır. Böylece tam işlevli bir web uygulaması oluşturmak çok daha hızlı olur.

En yaygın web geliştirme framework’lerinden bazıları şunlardır:

- Laravel (PHP): Güçlü olmasına rağmen geliştirmesi kolay olduğu için genellikle startup’lar ve küçük şirketler tarafından kullanılır.

- Express (Node.JS): PayPal, Yahoo, Uber, IBM ve MySpace gibi firmalar tarafından kullanılır.

- Django (Python): Google, YouTube, Instagram, Mozilla ve Pinterest tarafından kullanılır.

- Rails (Ruby): GitHub, Hulu, Twitch, Airbnb ve geçmişte Twitter tarafından bile kullanılmıştır.

Not: Popüler web siteleri genellikle tek bir framework ve tek bir web sunucusu yerine, birden fazla framework ve web sunucusunu birlikte kullanır.

API’ler (APIs)

Back-end web uygulaması geliştirmesinin önemli bir kısmı, front-end ve back-end’in birbirine bağlanması için Web API’lerin ve HTTP Request parametrelerinin kullanılmasıdır. Bu sayede front-end ve back-end bileşenleri arasında veri gönderilip alınabilir ve web uygulamasının içindeki çeşitli işlevler çalıştırılabilir.

Front-end bileşeninin back-end ile etkileşime girip belirli işlemleri yaptırabilmesi için API’ler kullanılır. Front-end, back-end’e belirli bir görev için belirli bir input ile istek atar. Back-end bileşenleri bu istekleri işler, gerekli fonksiyonları gerçekleştirir ve belirli bir response döndürür. Son olarak front-end bu response’u render eder ve kullanıcıya çıktıyı gösterir.

Query Parametreleri (Query Parameters)

Bir web sayfasına belirli argümanlar göndermenin varsayılan yöntemi, GET ve POST parametreleridir. Bu yöntem, front-end bileşenlerinin sayfada kullanılan belirli parametrelere değer vermesini sağlar. Back-end bileşenleri bu parametreleri işler ve buna göre response döndürür.

Örneğin /search.php sayfası bir item parametresi alabilir ve bu parametre arama yapılacak öğeyi belirtmek için kullanılabilir.

GET ile parametre geçirmek:

/search.php?item=apples

POST parametreleri ise POST isteğinin body kısmında gönderilir:

POST /search.php HTTP/1.1
...SNIP...
item=apples

Query parametreleri tek bir sayfanın farklı türde input almasına izin verir ve her biri farklı şekilde işlenebilir. Ancak bazı senaryolarda Web API’ler çok daha hızlı ve verimli olabilir.

(Web Requests modülü, HTTP isteklerini daha detaylı şekilde ele alır.)

Web API’ler (Web APIs)

API (Application Programming Interface), bir uygulamanın başka uygulamalarla nasıl etkileşime gireceğini belirleyen bir arayüzdür.

Web uygulamalarında API, back-end bileşenlerinde bulunan fonksiyonlara uzaktan erişimi sağlar.

API’ler sadece web uygulamalarına özel değildir; genel olarak yazılım dünyasında her yerde kullanılır. Web API’ler genellikle HTTP protokolü üzerinden erişilir ve çoğu zaman web sunucusu tarafından işlenir/çevirilir.

Örneğin bir hava durumu web uygulaması, belirli bir şehrin güncel hava durumunu almak için bir API sunabilir. API URL’sine istek atar, şehir adını veya şehir id’sini gönderirsin ve API sana JSON formatında hava durumunu döndürür.

Başka bir örnek Twitter API’sidir:

- belirli bir hesabın son tweetlerini XML veya JSON formatında çekebilirsin

- authentication varsa tweet bile atabilirsin

Web uygulamalarında API kullanımı

Bir web uygulamasında API kullanabilmek için geliştiriciler, back-end tarafında bu işlevi geliştirir ve SOAP veya REST gibi API standartlarını kullanır.

SOAP

SOAP (Simple Objects Access) standardı, veriyi XML üzerinden paylaşır.

- Request: HTTP isteği içinde XML formatında gönderilir

- Response: yine XML formatında döner

Front-end bileşenleri bu XML çıktısını düzgün parse edecek şekilde tasarlanır.

Örnek SOAP mesajı:

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.example.com/soap/soap/"
soap:encodingStyle="http://www.w3.org/soap/soap-encoding">
<soap:Header>
</soap:Header>
<soap:Body>
  <soap:Fault>
  </soap:Fault>
</soap:Body>
</soap:Envelope>

SOAP şu konularda çok kullanışlıdır:

- yapılandırılmış veriyi (ör: tüm bir class object) taşımak

- binary data taşımak

- serialized objelerle çalışmak

Bu özellikler, front-end ve back-end arasında karmaşık verilerin paylaşılmasını ve düzgün parse edilmesini sağlar.

SOAP ayrıca stateful objeleri paylaşmak için de çok uygundur (örneğin bir web sayfasının mevcut durumunu paylaşmak/değiştirmek). Bu, modern web uygulamalarında ve mobil uygulamalarda daha yaygın hale gelmiştir.

Ancak SOAP, yeni başlayanlar için zor olabilir ve küçük sorgular için bile uzun ve karmaşık request’ler gerektirebilir (basit search veya filter gibi).

Bu noktada REST standardı daha kullanışlı olur.

REST

REST (Representational State Transfer) standardı, veriyi URL path üzerinden paylaşır.

Örneğin:

search/users/1

Genelde output JSON formatında döner.

Örneğin:

userid: 1

Query parametrelerinden farklı olarak REST API’ler genelde şu şekilde çalışır:

- tek bir input tipi bekler

- input direkt URL path içine gömülür

- input’un adı veya tipi ayrıca belirtilmez

Bu yaklaşım search, sort, filter gibi işlemler için çok uygundur.

Bu yüzden REST API’ler genelde web uygulaması işlevlerini küçük API parçalarına böler ve bu küçük API çağrılarıyla daha gelişmiş işlemleri yaptırır.

Bu da web uygulamasını:

- daha modüler

- daha ölçeklenebilir

hale getirir.

REST API yanıtları genellikle JSON formatındadır. Front-end bileşenleri de bu response’u düzgün işleyip render edecek şekilde geliştirilir.

REST için diğer response formatları:

- XML

- x-www-form-urlencoded

- raw data

Önceki database bölümünde gördüğümüz gibi, örneğin GET /category/posts/ API isteğinin JSON yanıtı şöyle olabilir:

{
"100001": {
"date": "01-01-2021",
"content": "Welcome to this web application."
},
"100002": {
"date": "02-01-2021",
"content": "This is the first post on this web app."
},
"100003": {
"date": "02-01-2021",
"content": "Reminder: Tomorrow is the ..."
}
}

REST’te kullanılan HTTP metodları

REST, web uygulamasında farklı aksiyonları gerçekleştirmek için farklı HTTP metodları kullanır:

- GET → veri çekmek için

- POST → veri oluşturmak için (non-idempotent)

- PUT → veri oluşturmak veya var olanı değiştirmek için (idempotent)

- DELETE → veri silmek için

 
 
bottom of page