Herkese selamlar MMOZirve Ailesi,
Web geliştirme dünyasına adım attığınızda, karşınıza sürekli olarak "API" ve özellikle "REST API" terimleri çıkar. Peki, uygulamaların, web sitelerinin ve mobil cihazların birbiriyle konuşmasını sağlayan bu sihirli teknoloji tam olarak nedir?
Eğer "API nedir?", "REST neden bu kadar önemli?" ve "Bu GET, POST da neyin nesi?" gibi sorular aklınızı kurcalıyorsa, doğru yerdesiniz. Bu rehberde, modern web'in bel kemiği olan REST API'ların ne olduğunu, neden bu kadar önemli olduğunu ve nasıl çalıştığını, herkesin anlayabileceği bir dille, sıfırdan anlatacağız.
Bir API'yi anlamanın en kolay yolu, bir restorana gittiğinizi hayal etmektir.
Garson, sizin siparişinizi (isteğinizi) alır, mutfağın anlayacağı bir dile çevirir, mutfağa iletir. Mutfak siparişi (veriyi) hazırladığında, garson onu size geri getirir (yanıt).
API, tam olarak bu garsonun yaptığı işi yapar: Farklı yazılım uygulamalarının birbirlerinin iç işleyişini bilmeden, belirli kurallar çerçevesinde iletişim kurmasını ve veri alışverişi yapmasını sağlayan bir arayüzdür.

REST (Representational State Transfer), bu API'ların nasıl tasarlanması gerektiğine dair bir dizi kural ve prensip içeren bir mimari tarzdır. Yani REST, bir teknoloji değil, bir tasarım felsefesidir. Bu felsefeye uygun olarak tasarlanmış API'lara RESTful API denir.
Bu kurallar sayesinde, API'lar daha performanslı, ölçeklenebilir ve anlaşılır hale gelir.
REST mimarisi, internetin temel iletişim protokolü olan HTTP üzerinden çalışır. Bir istemci (örneğin tarayıcınız veya mobil uygulamanız), bir sunucuya HTTP isteği gönderir ve sunucu da bir HTTP yanıtı ile geri döner.
Bu iletişimde 4 ana bileşen vardır:
Garsona "bana bir çorba getir" veya "menüye yeni bir tatlı ekle" demeniz gibi, sunucudan ne istediğinizi belirtmek için standart HTTP fiillerini kullanırsınız. En yaygın olanları:
Sunucudaki hangi veriyle işlem yapmak istediğinizi belirten URL adresidir. Her veri türünün kendine ait bir adresi vardır.
Hem istekte hem de yanıtta bulunan, veri hakkında ek bilgiler (metaveri) içeren kısımdır. Örneğin, verinin formatı (genellikle JSON), kimlik doğrulama bilgileri (Authentication Token) gibi bilgiler burada yer alır.
POST veya PUT gibi, sunucuya veri gönderdiğiniz isteklerde, gönderdiğiniz verinin kendisi bu bölümde yer alır. Genellikle JSON (JavaScript Object Notation) formatı kullanılır çünkü hem insanlar hem de makineler için okunması kolaydır.
Teoriyi pratiğe dökelim. Bir blog uygulaması için REST API'nin nasıl çalışacağını görelim:
1. Tüm Blog Yazılarını Listelemek
Tüm blog yazılarını sunucudan listelemek için GET metodu kullanılır. İstek, /posts endpoint'ine (URL) gönderilir. Bu işlem sunucudaki bütün yazıları getirir.
2. Belirli Bir Yazıyı Okumak
Yalnızca belirli bir yazıyı, örneğin ID'si 42 olanı okumak için yine GET metodu kullanılır. Ancak bu sefer istek, yazının kimliğini belirten /posts/42 endpoint'ine yapılır.
3. Yeni Bir Blog Yazısı Oluşturmak
Sisteme yeni bir blog yazısı eklemek için POST metodu ile /posts endpoint'ine bir istek gönderilir. Bu istek sırasında yazının başlığı ve içeriği gibi bilgiler, isteğin gövdesinde (Body) JSON formatında sunucuya iletilir.
4. Bir Yazıyı Güncellemek
Mevcut bir yazıyı, örneğin ID'si 42 olanı güncellemek için PUT metodu kullanılır. İstek, güncellenecek yazının kimliğini içeren /posts/42 endpoint'ine yapılır ve yazının yeni içeriği isteğin gövdesinde (Body) gönderilir.
5. Bir Yazıyı Silmek
ID'si 42 olan bir yazıyı sunucudan silmek için DELETE metodu kullanılır. Bu istek, silinecek yazının kimliğini belirten /posts/42 endpoint'ine gönderilir.
Sunucu bu isteklere HTTP Durum Kodları ile yanıt verir: 200 OK (Başarılı), 201 Created (Oluşturuldu), 404 Not Found (Bulunamadı), 500 Internal Server Error (Sunucu Hatası) gibi.
REST API'lar, modern yazılım geliştirmenin temel taşıdır çünkü:
Değerli MMOZirve Üyeleri Sorularınız veya eklemek istedikleriniz varsa, yorumlarda paylaşmaktan çekinmeyin iyi forumlar dilerim.
Web geliştirme dünyasına adım attığınızda, karşınıza sürekli olarak "API" ve özellikle "REST API" terimleri çıkar. Peki, uygulamaların, web sitelerinin ve mobil cihazların birbiriyle konuşmasını sağlayan bu sihirli teknoloji tam olarak nedir?
Eğer "API nedir?", "REST neden bu kadar önemli?" ve "Bu GET, POST da neyin nesi?" gibi sorular aklınızı kurcalıyorsa, doğru yerdesiniz. Bu rehberde, modern web'in bel kemiği olan REST API'ların ne olduğunu, neden bu kadar önemli olduğunu ve nasıl çalıştığını, herkesin anlayabileceği bir dille, sıfırdan anlatacağız.
En Basit Haliyle API Nedir? (Restoran Analojisi)
Bir API'yi anlamanın en kolay yolu, bir restorana gittiğinizi hayal etmektir.
- Siz (İstemci - Client), masada oturup yemek sipariş etmek istersiniz.
- Mutfağınızda harika yemekler hazırlayan bir (Sunucu - Server) vardır.
- Ancak siz mutfağa gidip neyin nasıl yapıldığını bilmek zorunda değilsiniz. Sadece menüden ne istediğinizi seçersiniz.
Garson, sizin siparişinizi (isteğinizi) alır, mutfağın anlayacağı bir dile çevirir, mutfağa iletir. Mutfak siparişi (veriyi) hazırladığında, garson onu size geri getirir (yanıt).
API, tam olarak bu garsonun yaptığı işi yapar: Farklı yazılım uygulamalarının birbirlerinin iç işleyişini bilmeden, belirli kurallar çerçevesinde iletişim kurmasını ve veri alışverişi yapmasını sağlayan bir arayüzdür.

Peki "REST" Ne Anlama Geliyor?
REST (Representational State Transfer), bu API'ların nasıl tasarlanması gerektiğine dair bir dizi kural ve prensip içeren bir mimari tarzdır. Yani REST, bir teknoloji değil, bir tasarım felsefesidir. Bu felsefeye uygun olarak tasarlanmış API'lara RESTful API denir.
Bu kurallar sayesinde, API'lar daha performanslı, ölçeklenebilir ve anlaşılır hale gelir.
REST API Nasıl Çalışır? Temel Kavramlar
REST mimarisi, internetin temel iletişim protokolü olan HTTP üzerinden çalışır. Bir istemci (örneğin tarayıcınız veya mobil uygulamanız), bir sunucuya HTTP isteği gönderir ve sunucu da bir HTTP yanıtı ile geri döner.
Bu iletişimde 4 ana bileşen vardır:
1. HTTP Metotları (İsteğinizin Türü)
Garsona "bana bir çorba getir" veya "menüye yeni bir tatlı ekle" demeniz gibi, sunucudan ne istediğinizi belirtmek için standart HTTP fiillerini kullanırsınız. En yaygın olanları:
- GET: Sunucudan veri almak/okumak için kullanılır. (Örn: "Bana tüm blog yazılarını getir.")
- POST: Sunucuda yeni bir veri oluşturmak için kullanılır. (Örn: "Bu yeni blog yazısını kaydet.")
- PUT / PATCH: Sunucudaki mevcut bir veriyi güncellemek için kullanılır. (Örn: "Şu blog yazısının başlığını değiştir.")
- DELETE: Sunucudaki bir veriyi silmek için kullanılır. (Örn: "Bu blog yazısını sil.")
2. Endpoint (İsteğin Adresi)
Sunucudaki hangi veriyle işlem yapmak istediğinizi belirten URL adresidir. Her veri türünün kendine ait bir adresi vardır.
- https://api.ornek.com/posts (Tüm blog yazıları)
- https://api.ornek.com/posts/123 (ID'si 123 olan tek bir blog yazısı)
- https://api.ornek.com/users (Tüm kullanıcılar)
3. Headers (Başlık Bilgileri)
Hem istekte hem de yanıtta bulunan, veri hakkında ek bilgiler (metaveri) içeren kısımdır. Örneğin, verinin formatı (genellikle JSON), kimlik doğrulama bilgileri (Authentication Token) gibi bilgiler burada yer alır.
4. Body (İsteğin İçeriği)
POST veya PUT gibi, sunucuya veri gönderdiğiniz isteklerde, gönderdiğiniz verinin kendisi bu bölümde yer alır. Genellikle JSON (JavaScript Object Notation) formatı kullanılır çünkü hem insanlar hem de makineler için okunması kolaydır.
Pratik Bir Örnek: Blog Uygulaması API'si
Teoriyi pratiğe dökelim. Bir blog uygulaması için REST API'nin nasıl çalışacağını görelim:
1. Tüm Blog Yazılarını Listelemek
Tüm blog yazılarını sunucudan listelemek için GET metodu kullanılır. İstek, /posts endpoint'ine (URL) gönderilir. Bu işlem sunucudaki bütün yazıları getirir.
2. Belirli Bir Yazıyı Okumak
Yalnızca belirli bir yazıyı, örneğin ID'si 42 olanı okumak için yine GET metodu kullanılır. Ancak bu sefer istek, yazının kimliğini belirten /posts/42 endpoint'ine yapılır.
3. Yeni Bir Blog Yazısı Oluşturmak
Sisteme yeni bir blog yazısı eklemek için POST metodu ile /posts endpoint'ine bir istek gönderilir. Bu istek sırasında yazının başlığı ve içeriği gibi bilgiler, isteğin gövdesinde (Body) JSON formatında sunucuya iletilir.
4. Bir Yazıyı Güncellemek
Mevcut bir yazıyı, örneğin ID'si 42 olanı güncellemek için PUT metodu kullanılır. İstek, güncellenecek yazının kimliğini içeren /posts/42 endpoint'ine yapılır ve yazının yeni içeriği isteğin gövdesinde (Body) gönderilir.
5. Bir Yazıyı Silmek
ID'si 42 olan bir yazıyı sunucudan silmek için DELETE metodu kullanılır. Bu istek, silinecek yazının kimliğini belirten /posts/42 endpoint'ine gönderilir.
Sunucu bu isteklere HTTP Durum Kodları ile yanıt verir: 200 OK (Başarılı), 201 Created (Oluşturuldu), 404 Not Found (Bulunamadı), 500 Internal Server Error (Sunucu Hatası) gibi.
Neden Bu Kadar Önemli?
REST API'lar, modern yazılım geliştirmenin temel taşıdır çünkü:
- Platform Bağımsızdır: Bir backend (sunucu tarafı), aynı API'yi kullanarak hem bir web sitesini, hem bir iOS uygulamasını, hem de bir Android uygulamasını besleyebilir.
- Esneklik ve Ölçeklenebilirlik Sağlar: Ön yüz (frontend) ve arka yüz (backend) ekipleri birbirinden bağımsız çalışabilir. Uygulamanın farklı kısımları, birbirini etkilemeden geliştirilebilir ve büyütülebilir.
- Standartlaşma: HTTP gibi evrensel standartları kullandığı için, tüm geliştiriciler tarafından kolayca anlaşılır ve uygulanabilir.
Değerli MMOZirve Üyeleri Sorularınız veya eklemek istedikleriniz varsa, yorumlarda paylaşmaktan çekinmeyin iyi forumlar dilerim.


