API Nedir?

Web Servisleriyle İlişkisi ve İstek-Yanıt Akışı

Yazar: Sefa Sarıkaya

API Nedir? Web Servisleriyle İlişkisi ve İstek-Yanıt Akışı

API ile web servisi aynı kapsamda değildir. API, bir uygulamanın başka bir uygulamanın işlev veya verilerine erişmesini sağlayan arayüzdür; web servisleri ise uygulamalar arasındaki iletişimi ağ üzerinden kurar.

Ağ Üzerindeki İstek ve Yanıt

İstek URL’si hedef kaynağı belirtir, yöntem istenen işlem türünü bildirir, başlıklar da içerik türü gibi ek bilgileri taşır. Örneğin bir isteğin adresi kaynak konumunu, başlıkları ise isteğin nasıl yorumlanacağına yarayan bilgileri gösterir.

GET ve POST İsteğinin Taşıdığı Anlam

GET, bir kaynağın temsilini istemek için kullanılır; HTTP standardına göre GET isteği gövde içermemelidir. POST ise hedef kaynağın işleyişine göre veri gönderebilir veya işlem başlatabilir.

ÖzellikGETPOST
AmaçKaynak verisini isterVeri gönderebilir veya işlem başlatabilir
İstek gövdesiStandarda göre içermezHedef kaynağın işleyişine bağlıdır
İstek yönüKaynağı istemeHedefe veri veya işlem iletme

GET yanıtının kodu isteğin sonucunu bildirir; yöntem adı tek başına yanıtın başarılı olup olmadığını söylemez.

Yanıttaki Kod ve Veri Biçimi

401 kimlik doğrulama bilgisinin eksik ya da kabul edilmemiş olduğunu, 403 ise isteğin reddedildiğini belirtir. Yanıt gövdesindeki JSON, yapılandırılmış veriyi metin biçiminde taşır ve JavaScript dışındaki programlama dilleri de bu veriyi okuyup üretebilir.

İstemci, istediği yanıt biçimini Accept başlığıyla bildirir; gönderdiği içeriğin biçimini Content-Type başlığı belirtir. API yanıtı JSON veya XML gibi biçimlerde olabilir.

Web API Tasarımında REST ve SOAP

REST, kaynakları URI’lerle tanımlayan ve bu kaynaklarla HTTP yöntemleri üzerinden çalışmayı düzenleyen bir mimari yaklaşımdır. REST’te durumsuzluk, her isteğin sunucunun isteği anlayıp işlemesi için gereken bilgileri taşıması demektir; sunucu önceki isteklerden kalan istemci bağlamına dayanmaz.

REST yanıtları önbelleğe uygun olarak tanımlanabilir ve bu yanıtların yeniden kullanılması performansı artırıp sunucu yükünü azaltabilir. SOAP ise HTTP üzerinden de taşınabilen bir mesajlaşma protokolüdür. SOAP mesajı HTTP ile iletildiğinde, HTTP’nin kendi anlamları geçerliliğini korur.

API Nedir? Web Servisleriyle İlişkisi ve İstek-Yanıt Akışı - Web API Tasarımında REST ve SOAP
API Nedir? Web Servisleriyle İlişkisi ve İstek-Yanıt Akışı - Web API Tasarımında REST ve SOAP

İstemci İçin Belgeler ve Tarayıcıdaki Sınır

OpenAPI, bir HTTP API’nin yeteneklerini kaynak koda erişmeden insanların ve makinelerin anlayabileceği biçimde tarif eden, programlama dilinden bağımsız bir arayüz belirtimidir. Tarayıcıdaki JavaScript, Fetch API ile HTTP isteği gönderip yanıtı işleyebilir; yanıt gövdesini JSON olarak okuyabilir.

CORS, sunucunun hangi kaynaklardan gelen web sayfalarının yanıtı okuyabileceğini HTTP başlıklarıyla bildirmesini sağlar. Bazı tarayıcı isteklerinden önce OPTIONS ön isteği gönderilebilir; tarayıcı bu istekle sunucunun kullanılacak yönteme ve başlıklara izin verip vermediğini sorar.

Belirtiye Göre İlk Okuma

Yanıt kodunun ilk rakamı sınıfı belirtir: 2xx başarı, 4xx istemci hatası, 5xx sunucu hatasıdır; 1xx bilgi, 3xx yönlendirme sınıfıdır. İstek kimlik doğrulama bilgisi taşımıyorsa 401, kimliği tanınmasına rağmen erişim yetkisi yetersizse 403 anlamlıdır.

Seçim Ölçütü: Hangi Bilgiye İhtiyaç Var?

Sunucunun iç yapısına erişmeden arayüzün nasıl kullanılacağını anlamak için adres, veri biçimi, yanıt kodları ve erişim yöntemini arıyorsan API sözleşmesi düzeyindeki bilgi yeterlidir. Belirli bir HTTP yanıtını çözümlemen gerekiyorsa, yanıt kodundan başlayıp ihtiyacın olan açıklama düzeyini seç.

API ve web servisi ayrımının artıları ve eksileri

Artıları

  • API kavramı web dışındaki yazılım arayüzlerini de kapsar.
  • HTTP isteğinin URL, yöntem ve başlıkları farklı görevleri açıklar.
  • Durum kodu yanıtın sınıfını ve sonucunu okumaya yardım eder.

Eksileri

  • Yöntem adı tek başına yanıtın başarılı olup olmadığını söylemez.
  • Tarayıcıda CORS, sayfanın yanıtı okumasını etkileyebilir.

Pratik not

Tarayıcıda çalışan bir uygulamanın isteğini inceleyen geliştirici için ağ paneli, uygulama koduyla sunucu yanıtı arasındaki bağlantıyı görünür kılar. İstek başlıklarında gönderilen içerik biçimi, yanıt başlıklarında ise sunucunun izin bilgisi yer alabilir. Bu ayrım özellikle bir istek sunucuya ulaşmış görünürken sayfa yanıt gövdesini kullanamadığında işe yarar. API belgesiyle çalışanlar için OpenAPI tanımı, arayüzün sunduğu yetenekleri kaynak kodunu açmadan okumaya yarar. İstek kaydında URL ile yöntem bilgisini de yanıt başlıklarının yanına alarak karşılaştırın; böylece tarayıcının ne gönderdiği ve sunucunun neye izin verdiği aynı görünümde incelenir. İlk kontrol olarak tarayıcı araçlarında ilgili isteğin OPTIONS kaydını ve CORS yanıt başlıklarını birlikte inceleyin.

Advertisements
Etiketler: #API #web servisi #HTTP #REST #JSON

Sıkça Sorulan Sorular

API, uygulamalar arasındaki işlev veya veri erişimini düzenleyen arayüzdür; web servisi bu iletişimi ağ üzerinden kuran hizmettir. Bir web API’sini kullanırken istemcinin bilmesi gerekenler genellikle adres, veri biçimi, yanıt kodları ve erişim yöntemidir.

Hayır; HTTP standardına göre GET isteği gövde içermemelidir. GET yanıtındaki gövde ise ayrı bir konudur: başarılı bir yanıt yeni kaynak oluşturulduğunu bildirebilir ya da başarı koduyla birlikte hiç gövde taşımayabilir.

Hayır, tek başına API’nin çalışmadığını göstermez. CORS tarayıcıdaki sayfanın sunucu yanıtını okuyup okuyamayacağını etkiler. OPTIONS ön isteği görülüyorsa tarayıcı, kullanılacak yöntem ve başlıklar için izin olup olmadığını soruyordur.

Bu içerik yapay zekâ tarafından hazırlanmış ve yayımlanmıştır; insan editör incelemesi veya onayı iddiası taşımaz.

Sefa Sarıkaya

İçerik Üreticisi

YouTube kanalımızda donanım sorunları, oyun hataları ve yazılım çözümleri üreterek topluluğa pratik rehberler sağlıyorum.

Abone Ol
Advertisements

Blogda Ara

Sefa Sarıkaya

Sefa Sarıkaya

İçerik Üreticisi

Donanım sorunları, oyun incelemeleri ve pratik yazılım çözümleri üreterek topluluğa rehberlik ediyorum.

İş Birliği & İletişim

Projelerim

TeknoCepte Uygulaması

Teknoloji gündemini ve incelemeleri cebinizden takip edin.

Google Play'den İndir

Kategoriler