08.02.2025
1
Beğenme
60
Görüntülenme
Temelden başlayalım. API nedir?
API (Uygulama Programlama Arayüzü), iki uygulamanın belirli tanımlar aracılığıyla birbiriyle iletişim kurmasına fırsat veren bir yazılım aracıdır. API, bir uygulamanın verilere, sunucu yazılımlarına ve diğer programlara ulaşabilmek için kullandığı bir bağlantı arayüzüdür.
API’ler, veri alışverişini hızlı ve pratik bir şekilde halletmemizi sağlar.
API kullanım alanlarına örnek verecek olursak:
Diyelim ki, bir uygulama geliştiriyorsun ve bu uygulamada kullanıcıların bilgilerini göstermek istiyorsun. Kullanıcı bilgileri, başka bir sunucuda bulunan bir veri tabanında tutuluyor ve bu verilere erişmek için bir API kullanıyorsun.
Adım 1: API’ye İstek Gönderme
Uygulaman, sunucuda bulunan API’ye bir istek gönderir. Örneğin, kullanıcıların listesini almak istiyorsan, bu durumda bir GET isteği kullanırsın. GET isteği, “Bana bu verileri getir” anlamına gelir.
Adım 2: API Yanıtını Alma
API, senin gönderdiğin GET isteğini işler ve veritabanından kullanıcı bilgilerini alır. Bu bilgileri genellikle JSON formatında sana geri gönderir. Bu JSON verisi, kullanıcıların adlarını, e-posta adreslerini ve diğer bilgilerini içerir.
Adım 3: Verileri Kullanma
Uygulaman, API’den gelen bu JSON verisini alır ve kullanıcıya göstermek için işler. Örneğin, gelen veriyi bir liste şeklinde ekranda gösterebilirsin.
Web tabanlı API’ler için:
Bu metot, sunucudan veri almak için kullanılır. Örnek olarak, bir web sitesinden kullanıcı bilgilerini almak istiyorsak, GET isteği göndeririz.
GET metodu ile sorgu metinleri URL içinde gönderilebilir. Bunun faydası, kullanıcıların sorguları yer işaretlerine ekleyebilmesi ve aynı sorguyu tekrar gönderebilmesidir. Ancak güvenlik açısından, URL’lerin ekranda görünüyor olması, gönderilen parametrelerin gizlilik ihtiyacı varsa problem yaratabilir. Bu sebeple güvenlik konusunda hassas istekler GET metodu ile gönderilmemelidir.
Fetch API ile GET İsteği Yapmak:
fetch('https://jsonplaceholder.typicode.com/posts/1', {
method: 'GET'
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Axios ile GET İsteği Yapmak:
axios.get('https://jsonplaceholder.typicode.com/posts/1')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('GET isteği sırasında bir hata oluştu:', error);
});
2. POST
Bu metot, sunucuya veri göndermek için kullanılır. Örneğin, yeni bir kullanıcı oluşturmak veya bir formu sunucuya göndermek için POST isteğini kullanırız.
POST metodunda istek parametreleri genellikle mesaj gövdesinde gönderilir, bu da GET metodunda sayılan riskleri engeller. Tarayıcılar geri butonuna basıldığında POST isteğinin mesaj gövdesinde yer alan parametreleri tekrar göndermek isteyip istemediğimizi sorarlar. Bu, bir işlemi yanlışlıkla birden fazla yapmayı engeller. Bu özellik sebebiyle güvenlik gerekçeleriyle bir işlem gerçekleştirileceğinde POST metodunun kullanılması önerilir.
Fetch API ile POST İsteği Yapmak:
const apiUrl = 'https://jsonplaceholder.typicode.com/posts';
const postData = {
title: 'foo',
body: 'bar',
userId: 1
};
fetch(apiUrl, {
method: 'POST', // POST methodunu belirtiriz
headers: {
'Content-Type': 'application/json', // JSON formatında veri gönderileceğini belirtiriz
},
body: JSON.stringify(postData) // Veriyi JSON formatında göndeririz
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Axios ile POST İsteği Yapmak:
const postData = {
title: 'Yeni Post',
body: 'Bu bir test postudur.',
userId: 1
};
axios.post('https://jsonplaceholder.typicode.com/posts', postData)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('POST isteği sırasında bir hata oluştu:', error);
});
3. PUT
Mevcut bir kaynağı güncellemek için kullanılır. Hangi kaynağı güncelleyeceksek onun ID’sini göndeririz.
Fetch API ile PUT İsteği Yapmak:
const apiUrl = 'https://jsonplaceholder.typicode.com/posts/1'; // Güncellenecek kaynağın URL'si
const updateData = {
title: 'updated title',
body: 'updated body',
userId: 1
};
fetch(apiUrl, {
method: 'PUT', // PUT methodunu belirtiriz
headers: {
'Content-Type': 'application/json', // JSON formatında veri gönderileceğini belirtiriz
},
body: JSON.stringify(updateData) // Veriyi JSON formatında göndeririz
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Axios ile PUT İsteği Yapmak:
const updateData = {
title: 'Güncellenmiş Post',
body: 'Bu post güncellenmiştir.',
userId: 1
};
axios.put('https://jsonplaceholder.typicode.com/posts/1', updateData)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('PUT isteği sırasında bir hata oluştu:', error);
});
4. HEAD
Bu metot, API’lerde belirli bir kaynağın var olup olmadığını kontrol etmek veya kaynak hakkında bilgi almak için kullanılır. GET metoduna çok benzer, aralarındaki fark HEAD isteğinin sunucudan sadece başlık bilgilerini alıp gövdeyi almamasıdır. Bu, sunucunun yanıt verip vermediğini kontrol etmek için oldukça kullanışlıdır.
5. DELETE
Mevcut bir kaynağı silmek için kullanılır. Örneğin, kullanıcı hesabını silmek istediğinde DELETE isteği kullanılır.
Fetch API ile DELETE İsteği Yapmak:
const apiUrl = 'https://jsonplaceholder.typicode.com/posts/1'; // Silinecek kaynağın URL'si
fetch(apiUrl, {
method: 'DELETE' // DELETE methodunu kullanıyoruz
})
.then(response => {
if (response.ok) {
console.log('Kaynak başarıyla silindi.');
} else {
console.log('Silme işlemi başarısız oldu.');
}
})
.catch(error => console.error('Error:', error));
Axios ile DELETE İsteği Yapmak:
axios.delete('https://jsonplaceholder.typicode.com/posts/1')
.then(response => {
console.log('Post başarıyla silindi:', response.data);
})
.catch(error => {
console.error('DELETE isteği sırasında bir hata oluştu:', error);
});
6. CONNECT
Bu metot, bir istemci ile bir sunucu arasında iki yönlü bir iletişim kanalı oluşturmak için kullanılır. Genellikle proxy sunucular üzerinde güvenli bağlantılar kurmak için kullanılır. İstemci ve hedef sunucu arasındaki iletişim şifreli bir tünel üzerinden gerçekleşir.
7. OPTIONS
Bu metot, bir istemcinin sunucuya belirli bir kaynak üzerinde hangi HTTP metotlarının kullanılabileceğini sormasını sağlar. Örneğin, bir web sayfası başka bir domain’den veri çekmeye çalıştığında, tarayıcı önce OPTIONS isteği göndererek sunucunun bu isteği kabul edip etmeyeceğini kontrol eder.
8. TRACE
TRACE metodu, istemci tarafından gönderilen bir HTTP isteğinin, sunucuya ulaşana kadar geçtiği tüm ara aşamaları (proxy, gateway vb.) ve sunucuya ulaştıktan sonra geri dönerken geçtiği yolu görmeyi sağlar. TRACE metodu, güvenlik riskleri taşıdığı için modern uygulamalarda genellikle devre dışı bırakılır.
9. PATCH
PATCH metodu, bir kaynağın sadece belirli alanlarını güncellemek için kullanılır. Örneğin, bir kullanıcının sadece e-posta adresini güncellemek istediğinde PATCH metodunu kullanabilirsin.
Kullanıcı yorumlarını görüntüleyebilmek için kayıt olmalısınız!
Zeynep Cıplak
Merhaba, ben Zeynep Cıplak. Beykent Üniversitesi Yazılım Mühendisliği bölümünden mezun oldum ve özellikle frontend geliştirme alanına odaklandım. React, TypeScript, HTML, CSS ve JavaScript konularında deneyim sahibiyim. SabancıDx’te Frontend Developer stajı yaparak, modüler yapı, performans optimizasyonu ve kullanıcı deneyimi konularında çalıştım. Ayrıca ekip çalışması ve Agile metodolojileri konusunda deneyim kazandım. Yenilikçi projelerde yer alarak kendimi geliştirmeye ve kullanıcı odaklı arayüzler oluşturmaya büyük bir ilgi duyuyorum. 🚀
Konum
İstanbul, TR
Eğitim
Yazılım Mühendisliği - Beykent Üniversitesi
İş Tecrübesi
Front-end developer intern - SabancıDx
Front-end developer intern - Greenverse Software