```html
Günümüzün dijital dünyasında, web uygulamaları ve hizmetleri genellikle birbiriyle etkileşim kurmak ve veri paylaşmak için API'lere (Uygulama Programlama Arayüzleri) güvenir. En popüler API türlerinden biri, modern web geliştirmede bir köşe taşı haline gelen REST API'sidir. Peki, tam olarak REST API nedir ve nasıl oluşturulur?
Bu blogda, REST API'lerinin konseptini, ilkelerini inceleyeceğiz ve kendi RESTful API'nizi nasıl oluşturacağınıza dair adımları inceleyeceğiz.
REST API Nedir?
REST API (Temsili Durum Aktarımı API'si), REST mimari tarzının ilkelerine ve kısıtlamalarına uyan bir API türüdür. REST, Roy Fielding tarafından 2000 yılında doktora tezinin bir parçası olarak tanıtıldı ve o zamandan beri, özellikle web tabanlı API'ler olmak üzere, ağa bağlı uygulamalar tasarlamak için baskın yaklaşım haline geldi.
Diğer API türlerinden farklı olarak, RESTful API'leri basit, durum bilgisi olmayan, ölçeklenebilir ve hafiftir, bu da onları web için ideal hale getirir. İstemcilerin (örneğin, web tarayıcıları veya mobil uygulamalar) GET, POST, PUT, DELETE ve diğerleri gibi HTTP yöntemlerini kullanarak sunucu tarafındaki kaynaklarla etkileşim kurmasına izin verirler.
Bir REST API'nin Bileşenleri
REST API üç ana bileşenden oluşur:
1. Kaynaklar: İstemciye sunmak istediğiniz her şey, örneğin veriler veya işlevsellik. Kaynaklar resimler, belgeler, kullanıcılar ve hatta hizmetler olabilir.
2. URI'ler (Tekdüzen Kaynak Tanımlayıcıları): Bir REST API'deki her kaynak, istemcinin kaynağı talep etmek için kullandığı bir URI ile benzersiz bir şekilde tanımlanır.
3. HTTP Yöntemleri: RESTful API'leri, kaynaklar üzerinde işlemler gerçekleştirmek için standart HTTP yöntemlerini kullanır. Yaygın yöntemler şunlardır:
- GET: Bilgi almak (örneğin, bir kullanıcı listesi almak)
- POST: Yeni bir kaynak oluşturmak (örneğin, yeni bir kullanıcı eklemek)
- PUT: Mevcut bir kaynağı güncellemek (örneğin, kullanıcı bilgilerini güncellemek)
- DELETE: Bir kaynağı kaldırmak (örneğin, bir kullanıcıyı silmek)
4. Temsil: Kaynaklar, JSON, XML veya HTML gibi çeşitli formatlarda temsil edilir. Sunucu, kaynağın bir temsilini istemciye geri gönderir.
REST API'nin Temel İlkeleri
Bir REST API oluşturma adımlarına geçmeden önce, REST'i tanımlayan temel ilkelere bir göz atalım.
- Durumsuzluk: İstemciden sunucuya yapılan her istek, isteği işlemek için gereken tüm bilgileri içermelidir. Sunucu, istekler arasında herhangi bir oturum verisi saklamaz, bu da her isteğin bağımsız olmasını sağlar.
- Tekdüzen Arayüz: RESTful API'leri, kaynaklarla etkileşim kurmak için standart HTTP yöntemlerini (GET, POST, PUT, DELETE) kullanır. Bu kaynaklar, sistemi basit ve öngörülebilir hale getiren URI'ler (Tekdüzen Kaynak Tanımlayıcıları) ile tanımlanır.
- İstemci-Sunucu Mimarisi: REST API'leri, istemcinin (kullanıcı arayüzü) endişelerini sunucudan (veri depolama) ayırır ve her ikisinin de bağımsız olarak gelişmesine izin verir. İstemcinin sunucunun istekleri nasıl işlediğini bilmesine gerek yoktur ve tersi de geçerlidir.
- Önbelleklenebilirlik: Sunucudan gelen yanıtlar, uygun olduğunda yanıtları yeniden kullanabilen, performansı artıran ve sunucu yükünü azaltan istemcileri etkinleştiren, önbelleğe alınabilir veya önbelleğe alınamaz olarak etiketlenebilir.
- Katmanlı Sistem: Bir REST API, yük dengeleyiciler, kimlik doğrulama sunucuları veya veritabanları gibi birden fazla katman kullanılarak oluşturulabilir. Her katman yalnızca bitişik katmanla etkileşime girerek daha iyi güvenlik ve ölçeklenebilirlik sağlar.
- Talep Üzerine Kod (İsteğe Bağlı): İstemciler, sunucudan kod (uygulamalar veya komut dosyaları gibi) indirip çalıştırarak işlevselliklerini genişletebilirler, ancak bu pratikte nadiren kullanılır.
- Kendini Tanımlayan Mesajlar: REST API'leri, her isteğin ve yanıtın kendisini tanımlamak için yeterli bilgi içerdiği anlamına gelen, kendini tanımlayan mesajlar kullanır. Bu, istemcilerin ve sunucuların ayrılmasına ve API'nin mevcut istemcileri bozmadan zaman içinde gelişmesine olanak tanır.
REST API Nasıl Oluşturulur?
Bir RESTful API oluşturmak, ortamınızı ayarlamaktan ve doğru araçları seçmekten, kaynakları tanımlamaya ve API'nizi test etmeye kadar çeşitli adımları içerir. Node.js ve Express kullanarak bir REST API oluşturma sürecini adım adım inceleyelim.
Adım 1. Bir Programlama Dili ve Çerçeve Seçin
Bir REST API oluşturmanın ilk adımı, bir programlama dili ve HTTP isteklerini işleyebilecek bir çerçeve seçmektir. API geliştirmesi için birkaç dil ve çerçeve popülerdir, örneğin:
- Express ile Node.js (JavaScript/TypeScript için)
- Flask veya Django ile Python (Python için)
- Spring Boot ile Java (Java için)
- Ruby on Rails (Ruby için)
- Laravel ile PHP (PHP için)
Bu kılavuz için, hafif, ölçeklenebilir ve kurulumu kolay olduğu için Express ile Node.js kullanacağız. Express, Node.js ile web API'leri oluşturma sürecini basitleştiren minimal bir çerçevedir.
Adım 2. Geliştirme Ortamınızı Kurun
Başlamak için, makinenizde Node.js ve npm (Node Package Manager) yüklü olduğundan emin olun. Terminalinizde bu komutu çalıştırarak yüklü olup olmadıklarını kontrol edebilirsiniz:
node -v
npm -v
Node.js ve npm yüklü değilse, bunları nodejs.org adresinden indirebilir ve yükleyebilirsiniz.
Node.js yüklendikten sonra, projeniz için yeni bir dizin oluşturun:
mkdir my-rest-api
cd my-rest-api
Şimdi, şunu çalıştırarak yeni bir Node.js projesi başlatın:
npm init -y
Bu komut, projenizin bağımlılıklarını takip eden bir package.json
dosyası oluşturur.
Ardından, aşağıdaki komutu çalıştırarak Express'i yükleyin:
npm install express
Express, HTTP isteklerini kolayca işlemenize, rotalar tanımlamanıza ve yanıtlar göndermenize olanak sağlayacaktır.
Adım 3. API Yapınızı Tanımlayın
API'nizi bir kaynaklar koleksiyonu olarak düşünün. Bir RESTful API'de, kaynaklar herhangi bir şey olabilir; kullanıcılar, ürünler, siparişler veya blog gönderileri. Her kaynağın, istemcinin onunla etkileşim kurmak için kullandığı bir benzersiz URI'si (Tekdüzen Kaynak Tanımlayıcı) olacaktır.
Örneğin, kullanıcıları yönetmek için basit bir API oluşturuyorsanız, kaynaklarınız şunları içerebilir:
/users
: Tüm kullanıcıların listesi/users/{id}
: Belirli bir kullanıcıyı ID'ye göre alın, güncelleyin veya silin
Ayrıca, her kaynak için kullanılacak HTTP yöntemlerine karar vermeniz gerekecektir. Yaygın yöntemler şunlardır:
- GET: Veri almak (örneğin, tüm kullanıcıları getirmek)
- POST: Yeni bir kaynak oluşturmak (örneğin, yeni bir kullanıcı eklemek)
- PUT: Mevcut bir kaynağı güncellemek (örneğin, kullanıcı bilgilerini değiştirmek)
- DELETE: Bir kaynağı kaldırmak (örneğin, bir kullanıcıyı silmek)
Adım 4. API Kodunu Yazın
Artık ortamınız kurulduğuna göre, kullanıcıları yönetmek için basit bir REST API oluşturalım.
server.js
adlı bir dosya oluşturun:
const express = require('express');
const app = express();
const port = 3000;
// Bellek içi veri deposu
let users = [
{ id: 1, name: 'John Doe' },
{ id: 2, name: 'Jane Smith' }
];
// JSON gövdelerini ayrıştırmak için ara yazılım
app.use(express.json());
// GET /users - Tüm kullanıcıları al
app.get('/users', (req, res) => {
res.status(200).json(users);
});
// GET /users/:id - ID'ye göre bir kullanıcıyı al
app.get('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const user = users.find(u => u.id === userId);
if (user) {
res.status(200).json(user);
} else {
res.status(404).json({ error: "User not found" });
}
});
// POST /users - Yeni bir kullanıcı oluştur
app.post('/users', (req, res) => {
const newUser = req.body;
newUser.id = users.length + 1;
users.push(newUser);
res.status(201).json(newUser);
});
// PUT /users/:id - ID'ye göre bir kullanıcıyı güncelle
app.put('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const userIndex = users.findIndex(u => u.id === userId);
if (userIndex !== -1) {
users[userIndex] = { ...users[userIndex], ...req.body };
res.status(200).json(users[userIndex]);
} else {
res.status(404).json({ error: "User not found" });
}
});
// DELETE /users/:id - ID'ye göre bir kullanıcıyı sil
app.delete('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
users = users.filter(u => u.id !== userId);
res.status(204).send();
});
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
Açıklama:
- Bellek içi veri deposu: Bu örnek için kullanıcı verilerini depolamak için basit bir
users
dizisi kullanıyoruz. Gerçek dünyadaki bir uygulamada, muhtemelen bir veritabanıyla (MongoDB, PostgreSQL veya MySQL gibi) etkileşim kuracaksınız. - Ara yazılım:
express.json()
ara yazılımı, istek gövdesindeki gelen JSON verilerini otomatik olarak ayrıştırmak için kullanılır, bu nedenle onu manuel olarak işlemek zorunda değiliz.
- Rotalar:
GET /users
: Tüm kullanıcıları getirin.GET /users/
:id: ID'ye göre bir kullanıcıyı getirin.POST /users
: Yeni bir kullanıcı oluşturun.PUT /users/
:id: Mevcut bir kullanıcıyı güncelleyin.DELETE /users/
:id: Bir kullanıcıyı ID'ye göre silin.
Adım 5. API'nizi Test Edin
Sunucunuz çalıştıktan sonra, HTTP istekleri göndermek için Apidog gibi bir araç kullanarak uç noktaları test edin.
Sunucuyu başlatmak için:
node server.js
Şimdi API ile aşağıdaki uç noktalar aracılığıyla etkileşim kurabilirsiniz:
- GET
http://localhost:3000/users
– Tüm kullanıcıları alır - GET
http://localhost:3000/users/1
– ID'si 1 olan kullanıcıyı alır - POST
http://localhost:3000/users
– Yeni bir kullanıcı ekler - PUT
http://localhost:3000/users/1
– ID'si 1 olan kullanıcıyı günceller - DELETE
http://localhost:3000/users/1
– ID'si 1 olan kullanıcıyı siler
Örneğin, cURL aracılığıyla yeni bir kullanıcı oluşturmak için:
curl -X POST -H "Content-Type: application/json" -d '{"name": "Alice Wonderland"}' http://localhost:3000/users
Adım 6. Hataları İşleyin
İstemcilerin bir şeylerin ters gittiğini bilmesini sağlamak için herhangi bir API'de hata işleme esastır. Uygun HTTP durum kodları ve hata mesajları döndürmelisiniz. Örneğin:
- 404 Not Found: Kaynak mevcut olmadığında.
- 400 Bad Request: İstemci geçersiz veri gönderdiğinde.
- 500 Internal Server Error: Sunucuda bir şeyler ters gittiğinde.
Yukarıdaki örnekte, bir kullanıcı bulunamazsa 404
durumu ve diğer hatalar için 400
veya 500
döndürüyoruz.
Adım 7. API'nizi Güvenli Hale Getirin
API'nizi güvenli hale getirmek için, kimlik doğrulama ve yetkilendirme mekanizmalarını uygulamalısınız. Yaygın uygulamalar şunlardır:
- JWT (JSON Web Tokens): Durumsuz kimlik doğrulama için yaygın olarak kullanılan bir yöntem.
- OAuth2: Üçüncü taraf yetkilendirmesi için bir standart.
Örneğin, korumalı rotalar için bir kullanıcının Authorization
başlığında geçerli bir belirteç sağlamasını isteyebilirsiniz.
Adım 8. API'nizi Dağıtın
API'niz yerel olarak çalıştıktan sonra, bir sonraki adım dağıtımdır. Node.js uygulamalarını dağıtmak için popüler platformlar şunlardır:
- Heroku: Node.js uygulamalarını dağıtmak için kullanımı kolay bir platform.
- AWS (Amazon Web Services): API'leri dağıtmak için EC2 örnekleri, Lambda işlevleri ve diğer hizmetleri sağlar.
- DigitalOcean: Doğrudan dağıtım seçeneklerine sahip bir bulut hizmeti.
Adım 9. API'nizin Sürümünü Belirleyin
API sürümleme, geriye dönük uyumluluk için önemli bir husustur. API'nizin sürümünü şunları kullanarak belirleyebilirsiniz:
- URI sürümleme:
http://api.example.com/v1/users
- Başlık sürümleme:
Accept: application/vnd.myapi.v1+json
gibiAccept
başlığı aracılığıyla.
REST API'leri Daha Hızlı Geliştirmek İçin Apidog Kullanın
REST API'leri oluşturmaya gelince, verimlilik ve basitlik anahtardır. Apidog, tasarım ve dokümantasyondan test etmeye ve dağıtıma kadar tüm süreci kolaylaştıran, hepsi bir arada bir API geliştirme aracıdır.
Apidog Nedir?
Apidog, API oluşturmayı basitleştirmek için tasarlanmış sağlam bir API geliştirme platformudur. API tasarımı, test etme, taklit etme ve dokümantasyon gibi birden fazla özelliği tek bir kullanımı kolay arayüzde birleştirir. İster yalnız çalışıyor olun, ister bir ekibin parçası olun, Apidog işbirliğini geliştirir ve API geliştirme yaşam döngüsünü hızlandırır.
REST API Geliştirme İçin Apidog Kullanmanın Faydaları
- Kolay API Tasarımı
Apidog, REST API'nizi grafiksel bir kullanıcı arayüzü (GUI) ile tasarlamanıza olanak tanır. Sürükle ve bırak arayüzü, karmaşık kod yazmadan uç noktaları, istek parametrelerini ve yanıt formatlarını tanımlamayı kolaylaştırır. Bu, özellikle API tasarımlarını hızlı bir şekilde prototip oluşturması veya yinelemesi gereken ekipler için faydalıdır. - Kapsamlı API Dokümantasyonu Oluşturma
Apidog, REST API'nizi tasarlarken otomatik olarak ayrıntılı API dokümantasyonu oluşturur. Bu, açıklamaları, istek/yanıt örneklerini ve kimlik doğrulama ayrıntılarını içerir. Dokümantasyon etkileşimlidir ve kullanıcılarınızın API çağrılarını doğrudan dokümantasyonun kendisinden kolayca test etmelerine olanak tanır. - Anında API Taklidi
Apidog'un öne çıkan özelliklerinden biri, API'leri anında taklit etme yeteneğidir. Bu, arka uç hazır olmadan önce API yanıtlarını simüle edebileceğiniz anlamına gelir ve ön uç geliştiricilerin paralel olarak çalışmaya devam etmesini sağlar. Taklit etme ayrıca, farklı bileşenlerin geliştirme sürecinin başlarında nasıl etkileşim kurduğunu test etmeye yardımcı olur. - Otomatik API Testi
Apidog ile, önceden oluşturulmuş test senaryolarını veya ihtiyaçlarınıza göre uyarlanmış özel olanları kullanarak REST API testini otomatik hale getirebilirsiniz. Platform, GET, POST, PUT, DELETE ve PATCH gibi tüm HTTP yöntemlerini destekler, böylece uç noktalarınızı köşe durumları, performans ve güvenlik açısından kapsamlı bir şekilde test edebilirsiniz. - API İşbirliği Basitleştirildi
Apidog, ekiplerin API projeleri üzerinde birlikte çalışmasına olanak tanıyan gerçek zamanlı işbirliğini destekler. İster bir arka uç geliştiricisi, ister bir ön uç geliştiricisi veya bir test uzmanı olun, herkes aynı projeye erişebilir, değişiklikler yapabilir ve ilerlemeyi sorunsuz bir şekilde takip edebilir.
Apidog Kullanarak REST API'leri Nasıl Tasarlanır ve Dokümante Edilir?
Apidog kullanarak ilk REST API'nizi oluşturmak için adım adım bir kılavuz:
Adım 1. Kaydolun ve Bir Proje Oluşturun
Bir Apidog hesabı için kaydolarak başlayın. Oturum açtıktan sonra, yeni bir proje oluşturun ve ona bir ad verin. API'lerinizi çalışma alanlarında düzenleyebilirsiniz; bu, aynı anda birden fazla API üzerinde çalışıyorsanız faydalıdır.

Adım 2. API Uç Noktası Şartnamelerini Tasarlayın
API'nizin uç noktalarını tanımlamak için sezgisel görsel düzenleyiciyi kullanın. Her uç nokta için şunları belirleyebilirsiniz:
- Uç nokta açıklamaları
- HTTP yöntemi (GET, POST, PUT, DELETE, vb.)
- İstek parametreleri
- Beklenen yanıt formatı (JSON, XML, vb.) ve örnekler

Adım 3. REST API Dokümantasyonunu Otomatik Olarak Oluşturun
İyi yapılandırılmış API dokümantasyonunu anında oluşturmak için sağ üst köşedeki Kaydet
'e tıklamanız yeterlidir.
Ve işte bu kadar, aşağıdaki gibi iyi yapılandırılmış bir Rest API dokümantasyonu elde edeceksiniz:

Apidog Kullanarak REST API'leri Nasıl Hata Ayıklanır/Test Edilir?
REST API'lerin Hata Ayıklaması/Test Edilmesi, geliştirme sırasında sorunları belirlemek ve çözmek için çok önemlidir. Apidog bu süreci kolay ve verimli hale getirir. REST API'lerinizde hızlı bir şekilde hata ayıklamak için şu adımları izleyin:
Adım 1. API Dokümantasyonu İçin Hata Ayıklama Modunu Etkinleştirin
Yeni oluşturduğunuz API dokümantasyonunda, hata ayıklama moduna geçmek için sayfanın sol alt köşesinde bulunan HATA AYIKLA
düğmesine tıklayın.

Adım 2. API İsteğini Gönderin
Hata ayıklama moduna girdikten sonra, API isteğini başlatmak için sağ üst köşedeki Gönder
düğmesine tıklayın. Apidog, REST API'nize çağrıyı yapacak ve sonuçları gerçek zamanlı olarak görüntüleyecektir.

Adım 3: API Yanıtını Doğrulayın
REST API isteğini gönderdikten sonra, Apidog isteği işleyecek ve yanıt raporunu gerçek zamanlı olarak gösterecektir:
- Yanıt Durum Kodu: İsteğin başarısını veya başarısızlığını gösteren HTTP durum kodu (örneğin, 200 OK, 404 Not Found).
- Yanıt Başlıkları: Bunlar, içerik türü, önbelleğe alma yönergeleri ve daha fazlası gibi yanıtla ilgili meta verileri içerir.
- Yanıt Gövdesi: Gövde, API'den döndürülen gerçek içeriği (örneğin, JSON, XML, HTML) görüntüleyecektir.

Bu gerçek zamanlı rapor, API'nizle ilgili sorunları hızlı bir şekilde belirlemenize ve çözmenize yardımcı olarak daha sorunsuz bir geliştirme süreci sağlar.
Apidog ayrıca iş akışınızı daha da geliştirmek için API taklidi ve otomatik API testi özellikleri sunar.
Apidog kullanarak bir dakikada API'leri nasıl taklit edeceğinizi öğrenin.
REST API'nin Avantajları
REST API'leri, birçok avantajı nedeniyle geliştiriciler için popüler bir seçim haline geldi. İşte RESTful API'leri kullanmanın temel faydalarından bazıları:
- Ölçeklenebilirlik: RESTful API'leri ölçeklenebilirdir, yani çok sayıda isteği işleyebilir ve mevcut kaynakları genişletmeye yardımcı olabilirler.
- Basitlik: REST API'leri, istemci ve sunucu arasında net bir ayrım ile basit ve kullanımı kolaydır.
- Esneklik: REST API'leri, JSON, XML ve HTML gibi çeşitli veri formatlarını destekler ve bu da onları farklı kullanım durumlarına son derece uyarlanabilir hale getirir. Bu, belirli iş ihtiyaçlarını karşılayan uygulamalar geliştirmeyi kolaylaştırır.
- Güvenlik: REST API'leri, OAuth ve SSL gibi endüstri standardı kimlik doğrulama ve şifreleme protokolleri kullanılarak güvenli hale getirilebilir. Bu, hassas verilerin yetkisiz erişimden korunmasını sağlar.
- Performans: REST API'leri hafiftir ve verimlidir, bu da onları hızlı ve duyarlı hale getirir. Ayrıca, performansı daha da artırabilen önbelleğe almayı da desteklerler.
- Uygun maliyet: REST API'leri, minimum altyapı ve yazılım gerektirir, bu da onları web uygulamaları oluşturmak için uygun maliyetli bir çözüm haline getirir. Ayrıca, ölçeklenmeleri kolaydır, bu da altyapı maliyetlerini azaltır.
Sonuç
REST API'leri oluşturmak ve yönetmek karmaşık olabilir, ancak doğru araçlarla ve REST'in arkasındaki ilkelerin sağlam bir şekilde anlaşılmasıyla, süreç çok daha yönetilebilir hale gelir. Apidog, API tasarımını, dokümantasyonu, test etmeyi ve sürümlemeyi tek bir yerde birleştiren kullanıcı dostu bir platform sunarak API geliştirmeyi basitleştirir.
Apidog'u kullanarak, en önemli şeye odaklanabilirsiniz; yüksek kaliteli, güvenilir API'ler oluşturmak ve geliştirme süreçlerinin karmaşıklığını araca bırakmak. Bu nedenle, API geliştirme iş akışınızı düzene sokmak istiyorsanız, Apidog mükemmel bir çözümdür. Bugün deneyin ve REST API'lerinizi oluşturmanın ve yönetmenin daha hızlı, daha verimli bir yolunu deneyimleyin.
```