Selam geliştiriciler! Bugün, Node.js, Express ve Axios kullanarak API'ler oluşturma dünyasına derinlemesine dalıyoruz. İster deneyimli bir programcı olun, ister yeni başlıyor olun, bu gönderi size sağlam API'leri verimli bir şekilde oluşturma konusunda rehberlik edecektir. Ayrıca, API test ve dokümantasyon sürecinizi kolaylaştıracak harika bir Apidog aracını tanıtacağım.
Giriş
API'ler (Uygulama Programlama Arayüzleri), modern web uygulamalarının bel kemiği haline geldi. Farklı yazılım sistemlerinin sorunsuz bir şekilde iletişim kurmasını ve veri paylaşmasını sağlar. İster bir web uygulaması, ister bir mobil uygulama, hatta bir masaüstü uygulaması geliştiriyor olun, API'ler esastır.
Neden Node.js, Express ve Axios?
Node.js, Express ve Axios, API'ler oluşturma ve tüketme söz konusu olduğunda dinamik bir üçlüdür. İşte nedeni:
- Node.js: Engellemeyen, olay güdümlü mimarisiyle bilinen Node.js, ölçeklenebilir ağ uygulamaları oluşturmak için mükemmeldir.
- Express: Bu minimal ve esnek Node.js web uygulaması çerçevesi, web ve mobil uygulamalar geliştirmek için sağlam bir özellik seti sağlar.
- Axios: Tarayıcı ve Node.js için vaat tabanlı bir HTTP istemcisi olan Axios, REST uç noktalarına eşzamansız HTTP istekleri göndermeyi ve CRUD işlemleri gerçekleştirmeyi kolaylaştırır.
Bu üç güçlü aracı birleştirerek, verimli, ölçeklenebilir ve bakımı kolay API'ler oluşturabilirsiniz.
Ortamınızı Kurma
Koda dalmadan önce, ortamımızı kuralım. Makinenizde Node.js ve npm (Node Package Manager) yüklü olması gerekir.
- Node.js ve npm'yi yükleyin: Node.js web sitesine gidin ve en son sürümü indirin. npm, Node.js ile birlikte gelir.
- Yeni bir proje başlatın: Terminalinizi açın ve şunu çalıştırın:
mkdir nodejs-express-axios-api
cd nodejs-express-axios-api
npm init -y
Bu, yeni bir dizin oluşturacak ve varsayılan bir package.json
dosyasıyla yeni bir Node.js projesi başlatacaktır.
- Express ve Axios'u yükleyin:
npm install express axios
Node.js ve Express ile İlk API'nizi Oluşturma
Artık ortamımız kurulduğuna göre, basit bir API oluşturalım.
Express'i Kurma
İlk olarak, Express sunucumuzu kurmamız gerekiyor. server.js
adında bir dosya oluşturun ve aşağıdaki kodu ekleyin:
const express = require('express');
const app = express();
const PORT = 3000;
// Middleware to parse JSON
app.use(express.json());
// Start the server
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
API Uç Noktalarını Tanımlama
Ardından, bazı API uç noktaları tanımlayalım. Bir kitap listesini yöneten basit bir CRUD uygulaması için uç noktalar oluşturacağız.
- Kitap Oluştur: Bu uç nokta, kullanıcıların listeye yeni bir kitap eklemesini sağlayacaktır.
- Kitapları Oku: Bu uç nokta, tüm kitapların listesini döndürecektir.
- Bir Kitabı Güncelle: Bu uç nokta, kullanıcıların mevcut bir kitabın ayrıntılarını güncellemesini sağlayacaktır.
- Bir Kitabı Sil: Bu uç nokta, kullanıcıların listeden bir kitabı silmesini sağlayacaktır.
server.js
dosyasına aşağıdaki kodu ekleyin:
let books = [];
// Create a Book
app.post('/books', (req, res) => {
const book = req.body;
books.push(book);
res.status(201).send('Book added successfully');
});
// Read Books
app.get('/books', (req, res) => {
res.json(books);
});
// Update a Book
app.put('/books/:id', (req, res) => {
const bookId = req.params.id;
const updatedBook = req.body;
books = books.map(book => book.id === bookId ? updatedBook : book);
res.send('Book updated successfully');
});
// Delete a Book
app.delete('/books/:id', (req, res) => {
const bookId = req.params.id;
books = books.filter(book => book.id !== bookId);
res.send('Book deleted successfully');
});
API'nizi Çalıştırma
API'nizi çalıştırmak için, terminalinizde aşağıdaki komutu kullanmanız yeterlidir:
node server.js
Şu mesajı görmelisiniz: Server is running on http://localhost:3000
.
Axios ile API'leri Tüketme
Artık API'miz çalışır durumda olduğuna göre, onu Axios kullanarak nasıl tüketeceğimizi öğrenelim.
Axios ile HTTP İstekleri Yapma
Axios, REST uç noktalarına eşzamansız HTTP istekleri göndermeyi ve CRUD işlemleri gerçekleştirmeyi kolaylaştırır. Axios kullanarak her bir işlemi (Oluştur, Oku, Güncelle, Sil) nasıl gerçekleştireceğimizi göstereceğiz.
İlk olarak, henüz yapmadıysanız projenize Axios'u yükleyin:
npm install axios
Örnek: Kitap API'mizle Etkileşim Kurmak için Axios Kullanma
client.js
adında yeni bir dosya oluşturun ve aşağıdaki kodu ekleyin:
const axios = require('axios');
const API_URL = 'http://localhost:3000/books';
// Create a new book
const createBook = async (book) => {
try {
const response = await axios.post(API_URL, book);
console.log(response.data);
} catch (error) {
console.error(error);
}
};
// Read all books
const getBooks = async () => {
try {
const response = await axios.get(API_URL);
console.log(response.data);
} catch (error) {
console.error(error);
}
};
// Update a book
const updateBook = async (bookId, updatedBook) => {
try {
const response = await axios.put(`${API_URL}/${bookId}`, updatedBook);
console.log(response.data);
} catch (error) {
console.error(error);
}
};
// Delete a book
const deleteBook = async (bookId) => {
try {
const response = await axios.delete(`${API_URL}/${bookId}`);
console.log(response.data);
} catch (error) {
console.error(error);
}
};
// Usage examples
const newBook = { id: '1', title: 'Node.js for Beginners', author: 'John Doe' };
createBook(newBook);
getBooks();
updateBook('1', { id: '1', title: 'Advanced Node.js', author: 'John Doe' });
deleteBook('1');
Açıklama
- createBook: Yeni bir kitap eklemek için bir POST isteği gönderir.
- getBooks: Tüm kitapları almak için bir GET isteği gönderir.
- updateBook: Mevcut bir kitabı güncellemek için bir PUT isteği gönderir.
- deleteBook: Bir kitabı kaldırmak için bir DELETE isteği gönderir.
Axios ve Hata Yönetiminin Gelişmiş Kullanımı
HTTP istekleriyle uğraşırken hata yönetimi çok önemlidir. Axios, hataları etkili bir şekilde yönetmenin çeşitli yollarını sağlar.
Hataları Yönetme
Hataları daha zarif bir şekilde yönetmek için client.js
dosyasını değiştirin:
const axios = require('axios');
const API_URL = 'http://localhost:3000/books';
// Create a new book
const createBook = async (book) => {
try {
const response = await axios.post(API_URL, book);
console.log(response.data);
} catch (error) {
handleError(error);
}
};
// Read all books
const getBooks = async () => {
try {
const response = await axios.get(API_URL);
console.log(response.data);
} catch (error) {
handleError(error);
}
};
// Update a book
const updateBook = async (bookId, updatedBook) => {
try {
const response = await axios.put(`${API_URL}/${bookId}`, updatedBook);
console.log(response.data);
} catch (error) {
handleError(error);
}
};
// Delete a book
const deleteBook = async (bookId) => {
try {
const response = await axios.delete(`${API_URL}/${bookId}`);
console.log(response.data);
} catch (error) {
handleError(error);
}
};
// Error handling function
const handleError = (error) => {
if (error.response) {
// The request was made and the server responded with a status code
console.error('Error:', error.response.data);
console.error('Status:', error.response.status);
console.error('Headers:', error.response.headers);
} else if (error.request) {
// The request was made but no response was received
console.error('Error: No response received', error.request);
} else {
// Something happened in setting up the request
console.error('Error:', error.message);
}
};
Özel Başlıklar ve Aracıları Ayarlama
Axios, özel başlıklar ayarlamanıza ve istekleri veya yanıtları yakalamanıza olanak tanır. Bu, kimlik doğrulama belirteçleri veya günlük kaydı eklemek için yararlı olabilir.
const axios = require('axios');
const API_URL = 'http://localhost:3000/books';
// Axios instance with custom headers
const axiosInstance = axios.create({
baseURL: API_URL,
headers: { 'Authorization': 'Bearer YOUR_TOKEN_HERE' }
});
// Request interceptor
axiosInstance.interceptors.request.use(config => {
console.log('Request sent at:', new Date().toISOString());
return config;
}, error => {
return Promise.reject(error);
});
// Response interceptor
axiosInstance.interceptors.response.use(response => {
console.log('Response received at:', new Date().toISOString());
return response;
}, error => {
return Promise.reject(error);
});
// Example usage with interceptors
const getBooks = async () => {
try {
const response = await axiosInstance.get('/');
console.log(response.data);
} catch (error) {
console.error(error);
}
};
getBooks
();
API'nizi APIdog ile Test Etme ve Belgeleme
API'lerinizin beklendiği gibi çalıştığından ve diğer geliştiriciler için kolayca kullanılabilir olduğundan emin olmak için API'lerinizi test etmek ve belgelemek çok önemlidir. İşte bu noktada APIdog devreye giriyor.
Apidog Nedir?
APIdog, API'lerinizi zahmetsizce test etmenize ve belgelemenize yardımcı olan güçlü bir araçtır. APIdog ile kapsamlı API dokümantasyonu oluşturabilir, otomatik testler gerçekleştirebilir ve API'lerinizi ekibinizle paylaşabilirsiniz.
Apidog ile API Test Etme
[post] isteği yapmak için Apidog'u nasıl kullanacağınıza dair kısa bir eğitime göz atalım.
Adım 1: Apidog'u açın ve yeni bir istek oluşturun.
- Apidog'u başlatın ve Yeni İstek'i seçin

Adım 2: API'yi Girin
- Yapmak istediğiniz POST isteği için API ayrıntılarını bulun veya manuel olarak girin.

Adım 3: Parametreleri Girin
- Gerekli parametreleri ve istek gövdesine dahil etmek istediğiniz verileri doldurun.

Apidog'u kullanmak, POST istekleriyle çalışırken size zaman ve çaba kazandırabilir.
Apidog ile API'mizi Belgeleme
API dokümantasyonunu kolayca oluşturmak için, bu adım adım kılavuzları izleyin:
Adım 1: Apidog'a kaydolun
API dokümantasyonu için Apidog'u kullanmaya başlamak için, bir hesap oluşturun ve oturum açın. Oturum açtıktan sonra, varsayılan projeyi seçebileceğiniz veya yeni bir proje oluşturabileceğiniz Proje Merkezi'ne yönlendirileceksiniz.

Adım 2: Yeni bir API Oluşturun
API projeniz birden fazla uç noktadan oluşacaktır. Projeniz içinde "+" düğmesini veya "Uç Nokta Ekle"yi tıklayarak bir uç nokta ekleyin.

Adım 3: API Bilgilerini Doldurun
Uç nokta URL'si, açıklama ve istek/yanıt ayrıntıları gibi ayrıntıları sağlayın. Uç noktaları belgelemek şunları içerir:
- HTTP yöntemini (GET, POST, PUT, DELETE, vb.) ve API istek yolunu belirtme
- İstek parametrelerini (adlar, türler, açıklamalar) tanımlama
- Beklenen yanıtları (durum kodları, biçimler, örnek yanıtlar) açıklama

Adım 4: API Dokümantasyonunu Kaydedin
Gerekli bilgileri girdikten sonra, API dokümantasyonunu kaydetmek için "Kaydet"e tıklayın.

Adım 5: API'yi Doğrudan Çevrimiçi API Belgesinden Test Edin
API dokümantasyonunu kaydettikten sonra, API'nizi "Çalıştır"ma seçeneği olacaktır. "Çalıştır" düğmesine tıklamak, bir API isteği gönderecek ve uç noktaları test etmeniz için yanıtı getirecektir. Bu süreçte, ele alınması gereken hataları ve sorunları belirleyebilirsiniz.

API dokümantasyonu iş ihtiyaçlarını karşıladığında, tek bir bağlantı aracılığıyla başkalarıyla paylaşabilirsiniz.
Apidog Kullanarak Çevrimiçi API Dokümantasyonu Oluşturmanın Faydaları
- Çevrimiçi Hata Ayıklama: "Çalıştır" düğmesini tıklayarak API'lerinizi doğrudan dokümantasyon içinde kolayca hata ayıklayın, hızlı ve verimli test etmeyi sağlayın.

- Otomatik Dokümantasyon Oluşturma: Gerekli bilgileri doldurarak kapsamlı API dokümantasyonunu otomatik olarak oluşturun, kapsamlı manuel yapılandırma ihtiyacını ortadan kaldırın.
- Kod Oluşturma: Geliştirme sürecini basitleştirerek, JavaScript, Fetch, Axios ve JQuery gibi çeşitli dillerde istek ve yanıt model kodunu anında oluşturun.

- Bulut Sahtesi: Arka uç hizmetlerini simüle etmek ve kısıtlama olmaksızın test için sanal sunucular oluşturmak için Bulut Sahtesini kullanın, esnekliği artırın ve gerçek arka uç hizmetlerine bağımlılığı azaltın.
Sonuç
Tebrikler! Node.js, Express ve Axios kullanarak sağlam bir API oluşturdunuz. Ayrıca, Axios ile API'leri nasıl tüketeceğinizi, hataları etkili bir şekilde nasıl yöneteceğinizi ve API testinizi ve dokümantasyonunuzu APIdog ile nasıl geliştireceğinizi öğrendiniz.
API'ler, modern web geliştirmenin bel kemiğidir ve bu araçlarda ustalaşmak, sizi güçlü ve ölçeklenebilir uygulamalar oluşturma yoluna sokacaktır. API geliştirme ve test sürecinizi kolaylaştırmak için APIdog'u ücretsiz indirmeyi unutmayın.