Web API ve REST API farkı, kavramların kapsamından kaynaklanır. Web API, web teknolojileri üzerinden uygulamalar arasında veri veya işlev paylaşan API’lerin genel adıdır. REST API ise REST mimari ilkelerine uygun olarak tasarlanan bir Web API türüdür. Bu nedenle her REST API bir Web API olarak değerlendirilebilir; ancak her Web API REST ilkelerine uygun olmak zorunda değildir.
REST API’ler çoğunlukla HTTP üzerinden çalışır, kaynakları URL’lerle temsil eder ve işlemler için GET, POST, PUT, PATCH ve DELETE gibi HTTP metotlarını kullanır. JSON en yaygın veri formatıdır; ancak REST mimarisi yalnızca JSON ile sınırlı değildir.
ASP.NET ve .NET teknolojileriyle istemciden bağımsız, RESTful servisler geliştirmek istiyorsanız BlueMark Academy’nin WEB API Eğitimi programını inceleyebilirsiniz. Üç günlük online eğitimde HTTP, REST, routing, HttpClient, asenkron programlama ve Web API geliştirme konuları ele alınmaktadır.
- API Nedir?
- Web API Nedir?
- REST API Nedir?
- Web API ve REST API Arasındaki Temel Farklar
- REST Mimarisinin Temel İlkeleri Nelerdir?
- REST API’de HTTP Metotları Nasıl Kullanılır?
- HTTP Durum Kodları Nelerdir?
- REST API Yalnızca JSON mu Kullanır?
- REST API ile SOAP API Arasındaki Fark Nedir?
- Web API ve REST API Hangi Projelerde Kullanılır?
- REST API Tasarlarken Nelere Dikkat Edilmelidir?
- REST API Güvenliği Nasıl Sağlanır?
- ASP.NET Core ile REST API Geliştirme
- Web API Eğitimi Kimler İçin Uygundur?
- BlueMark Academy WEB API Eğitimi
API Nedir?
API, “Application Programming Interface” yani “Uygulama Programlama Arayüzü” ifadesinin kısaltmasıdır. Bir yazılımın belirli veri veya işlevlerini başka yazılımların kullanabileceği kurallı bir arayüz üzerinden sunmasını sağlar.
API kullanan uygulama, hizmeti sunan sistemin iç kodunu veya veritabanı yapısını bilmek zorunda değildir. Hangi adrese, hangi formatta ve hangi yetkiyle istek göndermesi gerektiğini bilmesi yeterlidir.
API kullanımına şu örnekler verilebilir:
- Mobil uygulamanın sunucudan kullanıcı bilgilerini alması
- E-ticaret sitesinin ödeme kuruluşuyla iletişim kurması
- Kargo şirketinden gönderi durumunun sorgulanması
- Hava durumu verilerinin başka bir uygulamada gösterilmesi
- CRM ile e-posta pazarlama aracının veri paylaşması
- Bir yapay zekâ modeline uygulama üzerinden istek gönderilmesi
- Mikroservislerin birbirleriyle haberleşmesi
Web API Nedir?
Web API, istemci ile sunucu arasında web protokolleri üzerinden iletişim sağlayan uygulama arayüzüdür. İstemci; web sitesi, mobil uygulama, masaüstü yazılım, IoT cihazı veya başka bir sunucu olabilir.
Web API’ler çoğunlukla HTTP veya HTTPS üzerinden çalışır. İstek ve yanıt verileri JSON, XML, HTML, düz metin veya ihtiyaca uygun başka formatlarda iletilebilir.
Web API terimi iki farklı anlamda kullanılabilir:
- Genel kavram: Web üzerinden erişilebilen bütün API türlerini ifade eder.
- Microsoft teknolojisi: ASP.NET Web API veya ASP.NET Core Web API ile geliştirilen HTTP servislerini ifade edebilir.
Bu nedenle bir dokümanda “Web API” ifadesi kullanıldığında genel API kategorisinden mi yoksa belirli bir .NET teknolojisinden mi söz edildiği bağlamdan anlaşılmalıdır.
REST API Nedir?
REST API, Representational State Transfer mimari yaklaşımının ilkelerine göre tasarlanan API’dir. REST tek başına bir protokol veya programlama dili değildir. Uygulamaların kaynaklar üzerinden, ölçeklenebilir ve standart bir iletişim yapısıyla çalışmasını amaçlayan mimari stildir.
REST API’de müşteri, ürün, sipariş veya kullanıcı gibi iş varlıkları birer kaynak olarak ele alınır. Kaynaklar URI’lerle temsil edilir ve üzerlerinde gerçekleştirilecek işlemler HTTP metotlarıyla ifade edilir.
Örneğin bir ürün servisi aşağıdaki endpoint’leri kullanabilir:
GET /api/products
GET /api/products/42
POST /api/products
PUT /api/products/42
PATCH /api/products/42
DELETE /api/products/42
Burada URL’ler kaynakları, HTTP metotları ise kaynak üzerinde gerçekleştirilecek işlemleri temsil eder.
Web API ve REST API Arasındaki Temel Farklar
| Özellik | Web API | REST API |
|---|---|---|
| Tanım | Web üzerinden erişilebilen API’lerin genel adıdır. | REST ilkelerine uygun tasarlanmış Web API türüdür. |
| Kapsam | REST, SOAP, RPC veya özel yaklaşımları kapsayabilir. | Belirli REST mimari kısıtlarına dayanır. |
| Protokol | Çoğunlukla HTTP/HTTPS kullanır. | Web uygulamalarında çoğunlukla HTTP/HTTPS kullanılır. |
| Kaynak yaklaşımı | Kaynak odaklı olmak zorunda değildir. | Veri ve işlevler kaynaklar üzerinden modellenir. |
| Durum yönetimi | Durumlu veya durumsuz tasarlanabilir. | İsteklerin durumsuz olması gerekir. |
| Veri formatı | JSON, XML, HTML, metin veya başka formatları kullanabilir. | JSON yaygındır; ancak farklı temsiller kullanılabilir. |
| HTTP metotları | Kullanımı tasarıma bağlıdır. | GET, POST, PUT, PATCH ve DELETE semantiklerine uygun kullanılmalıdır. |
| Önbellekleme | Tasarıma bağlıdır. | Yanıtların önbelleklenebilirliği açıkça tanımlanmalıdır. |
| Katmanlı yapı | Zorunlu değildir. | İstemci, aradaki katmanları bilmek zorunda olmamalıdır. |
REST Mimarisinin Temel İlkeleri Nelerdir?
Bir API’nin HTTP ve JSON kullanması tek başına onu RESTful yapmaz. REST mimarisi belirli kısıtlara dayanır.
1. İstemci-Sunucu Ayrımı
İstemci kullanıcı arayüzü ve kullanıcı etkileşiminden, sunucu ise veri ve iş kurallarından sorumlu olabilir. Bu ayrım, iki tarafın birbirinden bağımsız geliştirilmesini kolaylaştırır.
2. Stateless – Durumsuzluk
Sunucu, istemcinin önceki isteklerine ait oturum bağlamına güvenmemelidir. Her istek, sunucunun işlemi gerçekleştirebilmesi için ihtiyaç duyduğu bilgileri içermelidir.
Durumsuzluk, API’nin birden fazla sunucu üzerinde ölçeklendirilmesini kolaylaştırabilir. Ancak bu ilke, uygulamada hiçbir durum veya veri saklanmayacağı anlamına gelmez. Veriler veritabanında saklanabilir; önemli olan isteğin önceki isteklere bağımlı olmamasıdır.
3. Cacheable – Önbelleklenebilirlik
API yanıtlarının önbelleğe alınıp alınamayacağı açık biçimde belirtilmelidir. Uygun önbellekleme, istemcinin aynı veriyi tekrar tekrar istemesini azaltarak performansı geliştirebilir.
4. Uniform Interface – Tek Tip Arayüz
Kaynakların tutarlı URI’lerle temsil edilmesi, standart HTTP metotlarının doğru kullanılması ve yanıtların anlaşılır olması gerekir. Tutarlı arayüz, istemci ile sunucu arasındaki bağımlılığı azaltır.
5. Layered System – Katmanlı Sistem
İstemci doğrudan ana sunucuya mı, API Gateway’e mi, proxy’ye mi veya başka bir ara katmana mı bağlandığını bilmek zorunda değildir. Bu yaklaşım güvenlik, yük dengeleme ve ölçeklendirme katmanlarının eklenmesini kolaylaştırır.
6. Code on Demand – İsteğe Bağlı Kod
Sunucu gerektiğinde istemciye çalıştırılabilir kod gönderebilir. Bu REST’in isteğe bağlı kısıtıdır ve her REST API’de uygulanması gerekmez.
REST API’de HTTP Metotları Nasıl Kullanılır?
HTTP metotları isteğin kaynak üzerinde hangi işlemi gerçekleştirmek istediğini ifade eder.
| HTTP metodu | Temel kullanım | Örnek |
|---|---|---|
| GET | Kaynak veya kaynak listesini getirir. | GET /api/products/42 |
| POST | Yeni kaynak oluşturur veya bir işlem başlatır. | POST /api/products |
| PUT | Kaynağın tamamını belirtilen temsille günceller veya değiştirir. | PUT /api/products/42 |
| PATCH | Kaynağın belirli alanlarını kısmi olarak günceller. | PATCH /api/products/42 |
| DELETE | Kaynağı siler. | DELETE /api/products/42 |
Endpoint tasarımında fiil yerine kaynak adı kullanmak genellikle daha uygun bir REST yaklaşımıdır:
Uygun: GET /api/orders/125
Kaçınılır: GET /api/getOrder?id=125
Ancak her iş işlemi temel CRUD metotlarına doğal biçimde çevrilemeyebilir. Ödeme onaylama veya siparişi iptal etme gibi iş komutlarında alan modeline uygun özel alt kaynaklar veya işlem endpoint’leri tasarlanabilir.
HTTP Durum Kodları Nelerdir?
REST API yanıtlarında işlemin sonucunu ifade etmek için standart HTTP durum kodları kullanılmalıdır.
- 200 OK: İstek başarıyla işlendi.
- 201 Created: Yeni kaynak başarıyla oluşturuldu.
- 204 No Content: İşlem başarılı ancak yanıt gövdesi bulunmuyor.
- 400 Bad Request: İstek yapısı veya verisi geçersiz.
- 401 Unauthorized: Kimlik doğrulama gerekli veya geçersiz.
- 403 Forbidden: Kullanıcının işlem için gerekli yetkisi yok.
- 404 Not Found: İstenen kaynak bulunamadı.
- 409 Conflict: İstek mevcut kaynak durumuyla çelişiyor.
- 422 Unprocessable Content: İstek anlaşılmış ancak içerik doğrulama nedeniyle işlenemiyor.
- 429 Too Many Requests: İstek sınırı aşıldı.
- 500 Internal Server Error: Sunucu tarafında beklenmeyen hata oluştu.
- 503 Service Unavailable: Hizmet geçici olarak kullanılamıyor.
Her hatada 200 veya her sorunda 500 döndürmek istemcinin sonucu doğru yorumlamasını zorlaştırır. Durum kodu, hata gövdesi ve hata mesajı birbiriyle tutarlı olmalıdır.
REST API Yalnızca JSON mu Kullanır?
Hayır. REST bir veri formatı değildir. REST API; JSON, XML, HTML, düz metin, CSV veya başka temsiller kullanabilir. Bununla birlikte JSON, hafif yapısı ve modern programlama dillerinde kolay işlenebilmesi nedeniyle web ve mobil uygulamalarda en yaygın formattır.
İstemci, desteklediği yanıt formatını Accept başlığıyla bildirebilir. Sunucu ise gönderilen içeriğin formatını Content-Type başlığıyla belirtir.
Accept: application/json
Content-Type: application/json
REST API ile SOAP API Arasındaki Fark Nedir?
SOAP, yapılandırılmış mesaj alışverişi için kullanılan bir protokoldür. REST ise mimari stildir. SOAP servisleri de web üzerinden erişilebildiği için Web API kapsamına girebilir; ancak REST API değildir.
| Özellik | REST | SOAP |
|---|---|---|
| Tür | Mimari stil | Mesajlaşma protokolü |
| Veri formatı | JSON, XML ve diğer temsiller | XML |
| Arayüz | Kaynak ve HTTP metotları odaklı | İşlem ve sözleşme odaklı |
| Sözleşme | OpenAPI gibi araçlarla tanımlanabilir | Genellikle WSDL kullanır |
| Kullanım | Web, mobil, SaaS ve mikroservislerde yaygın | Belirli kurumsal ve eski sistemlerde kullanılabilir |
REST’in daha yaygın olması SOAP’ın her durumda yanlış olduğu anlamına gelmez. Mevcut altyapı, güvenlik standartları, sözleşme gereksinimleri ve entegrasyon yapılacak sistemler seçimde etkili olabilir.
Web API ve REST API Hangi Projelerde Kullanılır?
Web ve Mobil Uygulamalar
Web veya mobil arayüz, kullanıcı, ürün, sipariş ve içerik verilerini backend sisteminden API aracılığıyla alabilir. Aynı API farklı istemci türleri tarafından kullanılabilir.
E-Ticaret Sistemleri
Ürün kataloğu, stok, sipariş, ödeme, kargo, müşteri ve kampanya verileri farklı sistemler arasında API’lerle paylaşılabilir.
Mikroservis Mimarileri
Mikroservisler bağımsız iş yeteneklerini temsil eder ve birbirleriyle REST API, gRPC veya mesajlaşma sistemleri üzerinden iletişim kurabilir. REST her mikroservis iletişimi için zorunlu veya tek seçenek değildir.
Üçüncü Taraf Entegrasyonları
Ödeme kuruluşları, kargo firmaları, CRM sistemleri, e-posta servisleri, harita uygulamaları ve yapay zekâ platformları geliştiricilere API sunabilir.
IoT ve Cihaz Yönetimi
IoT cihazları veya gateway sistemleri ölçüm verilerini API’ye gönderebilir ve merkezi sistemden yapılandırma bilgisi alabilir. Gerçek zamanlı ve düşük kaynaklı senaryolarda MQTT gibi farklı protokoller de değerlendirilebilir.
REST API Tasarlarken Nelere Dikkat Edilmelidir?
Tutarlı Endpoint Yapısı
Kaynak isimleri, çoğul kullanımı, iç içe kaynaklar, filtreleme ve sayfalama bütün API boyunca aynı kurallara dayanmalıdır.
GET /api/customers
GET /api/customers/15
GET /api/customers/15/orders
Doğru HTTP Metotları ve Durum Kodları
GET isteği veri değiştirmemeli; oluşturma, güncelleme ve silme işlemleri uygun HTTP metotlarıyla gerçekleştirilmelidir. Yanıt durum kodları işlemin gerçek sonucunu yansıtmalıdır.
Doğrulama ve Hata Yönetimi
İstek verileri sunucu tarafında doğrulanmalı ve istemciye anlaşılır hata yanıtları gönderilmelidir. Hata gövdesi kod, açıklama, alan ve izleme kimliği gibi bilgileri tutarlı bir formatta sunabilir.
Sayfalama, Filtreleme ve Sıralama
Büyük veri listelerinin tek yanıtta gönderilmesi performans sorunlarına neden olabilir. Liste endpoint’lerinde sayfalama, filtreleme ve sıralama desteklenebilir.
GET /api/products?page=2&pageSize=25&category=software&sort=price
Idempotency
Aynı isteğin birden fazla kez gönderilmesinin sistemde istenmeyen tekrarlar oluşturup oluşturmayacağı değerlendirilmelidir. GET, PUT ve DELETE metotlarının idempotent davranması beklenir. Ödeme gibi kritik POST işlemlerinde idempotency key kullanılabilir.
API Versiyonlama
API sözleşmesindeki geriye dönük uyumsuz değişiklikler mevcut istemcileri bozabilir. URI, header veya farklı bir yöntem üzerinden versiyonlama stratejisi oluşturulabilir.
GET /api/v1/products
GET /api/v2/products
Dokümantasyon
Endpoint’ler, parametreler, veri şemaları, kimlik doğrulama, hata yanıtları ve örnekler belgelenmelidir. OpenAPI standardı ve Swagger araçları, dokümantasyon ve API testi için kullanılabilir.
Gözlemlenebilirlik
Log, metrik ve dağıtık izleme bilgileri API’nin performansını ve hatalarını anlamaya yardımcı olur. İstek süresi, hata oranı, trafik, bağımlılık hataları ve kaynak kullanımı takip edilebilir.
REST API Güvenliği Nasıl Sağlanır?
API güvenliği yalnızca kullanıcı girişinden ibaret değildir. Kimlik doğrulama, yetkilendirme, veri koruma ve kötüye kullanım önlemleri birlikte ele alınmalıdır.
- Bütün iletişimde HTTPS kullanmak
- OAuth 2.0, OpenID Connect veya uygun token mekanizmaları kullanmak
- Her endpoint için yetki kontrolü yapmak
- Girdi doğrulaması uygulamak
- Hassas verileri gereksiz yere yanıta eklememek
- Rate limiting ve kota tanımlamak
- Token ve gizli anahtarları güvenli biçimde saklamak
- CORS politikasını kontrollü yapılandırmak
- Hata mesajlarında sistem ayrıntılarını açığa çıkarmamak
- API erişimlerini ve olağan dışı istekleri izlemek
- Bağımlılıkları ve framework sürümlerini güncel tutmak
JWT kullanılması API’yi otomatik olarak güvenli yapmaz. Token süresi, imza doğrulaması, yetkilendirme kontrolleri, yenileme süreci ve anahtar yönetimi doğru tasarlanmalıdır.
ASP.NET Core ile REST API Geliştirme
ASP.NET Core, C# ve .NET kullanarak platformlar arası web uygulamaları ve HTTP servisleri geliştirmeyi sağlayan framework’tür. REST API geliştirme sürecinde controller veya Minimal API yaklaşımı kullanılabilir.
ASP.NET Core Web API projelerinde genel olarak şu bileşenlerle karşılaşılır:
- Routing ve endpoint tanımları
- Controller veya Minimal API yapısı
- Model binding ve veri doğrulama
- Dependency Injection
- Entity Framework Core ile veri erişimi
- DTO ve nesne dönüşümleri
- Asenkron programlama
- Global hata yönetimi
- JWT ve yetkilendirme
- OpenAPI ve Swagger dokümantasyonu
- Birim ve entegrasyon testleri
ASP.NET Core ve C# programlarını birlikte görmek için BlueMark Academy’nin .NET eğitimlerini inceleyebilirsiniz.
Web API Eğitimi Kimler İçin Uygundur?
Web API eğitimi şu roller ve ihtiyaçlar için uygundur:
- Backend geliştiriciler
- .NET ve C# geliştiricileri
- Web ve mobil uygulama geliştiricileri
- Full-stack geliştiriciler
- Yazılım mimarları
- Mikroservis projelerinde çalışan ekipler
- Kurumsal sistem entegrasyonu geliştiren profesyoneller
- Mevcut SOAP servislerinden REST yaklaşımına geçmek isteyen ekipler
BlueMark Academy WEB API Eğitimi
BlueMark Academy’nin üç günlük online WEB API Eğitimi, ASP.NET teknolojileriyle istemciden bağımsız HTTP servisleri geliştirmek isteyen yazılım ekiplerine yöneliktir.
Eğitim kapsamında şu konular ele alınmaktadır:
- ASP.NET Web API’ye giriş
- SOAP ve REST yaklaşımları
- Modern mimaride Web API’nin yeri
- HTTP temelleri ve REST
- .NET ile asenkron programlama
- HttpClient ile veri alma ve gönderme
- Routing
- Web API yapılandırması ve yönetimi
- Örnek uygulama geliştirme
Kurumunuzun .NET altyapısına, geliştirici seviyesine ve entegrasyon ihtiyaçlarına uygun eğitim planlaması hakkında bilgi almak için BlueMark Academy ile iletişime geçebilirsiniz.
Web API ve REST API arasındaki fark nedir?
Web API, web üzerinden erişilebilen API’lerin genel adıdır. REST API ise REST mimari ilkelerine göre tasarlanmış bir Web API türüdür. Bu nedenle her REST API bir Web API olabilir ancak her Web API RESTful değildir.
REST API nedir?
REST API; kaynakları URI’lerle temsil eden, işlemler için HTTP metotlarından yararlanan ve isteklerin birbirinden bağımsız olmasını öngören REST mimarisine uygun uygulama arayüzüdür.
REST API yalnızca JSON mu kullanır?
Hayır. JSON REST API’lerde en yaygın veri formatıdır ancak zorunlu değildir. REST API’ler XML, HTML, düz metin, CSV veya ihtiyaca uygun başka temsiller kullanabilir.
REST API’de hangi HTTP metotları kullanılır?
GET kaynakları okumak, POST yeni kaynak oluşturmak, PUT kaynağın tamamını güncellemek, PATCH kısmi güncelleme yapmak ve DELETE kaynağı silmek için kullanılır.
REST API ile SOAP arasındaki fark nedir?
REST bir mimari stil, SOAP ise XML tabanlı bir mesajlaşma protokolüdür. REST farklı veri formatları kullanabilir ve kaynak odaklıdır. SOAP ise belirli mesaj ve sözleşme standartlarına dayanır.
ASP.NET Core Web API ne için kullanılır?
ASP.NET Core Web API; C# ve .NET ile web, mobil, mikroservis ve kurumsal entegrasyon uygulamalarına veri ve işlev sunan HTTP servisleri geliştirmek için kullanılır.
REST API güvenliği nasıl sağlanır?
REST API güvenliği için HTTPS, güçlü kimlik doğrulama, endpoint bazlı yetkilendirme, girdi doğrulama, rate limiting, güvenli token yönetimi, kontrollü CORS politikası ve düzenli izleme birlikte uygulanmalıdır.
Web API eğitimi kimler için uygundur?
Web API eğitimi; backend, .NET, web, mobil ve full-stack geliştiricilerle yazılım mimarları, mikroservis ekipleri ve kurumsal entegrasyon projelerinde çalışan teknik profesyoneller için uygundur.
