Application Programming Interface Nedir ve REST API Nasıl Çalışır?

Application Programming Interface Nedir ve REST API Nasıl Çalışır?

Tolgahan Tolu

Tolgahan Tolu

-

Jul 25, 2023

Bu yazımda sizlere yazılım geliştirme süreçlerinde artık vazgeçilmez bir rol oynayan API (Application Programming Interface) ve REST API (Representational State Transfer API) kavramından bahsedeceğim. Öncelikle API nedir ona bir bakalım?

API Nedir?

API (Application Programming Interface), Uygulama Programlama Arayüzü anlamına gelir. API'lar, iki uygulamanın birbiriyle iletişime geçmesi için bir farklı tanımlar kullanan programlardır. Bu tanımlar, iki uygulamanın istekler ve yanıtlar kullanarak birbiriyle nasıl iletişim kuracağını ifade eder.

API Nasıl Çalışır?

API mimarileri genellikle client (istemci) / server (sunucu) olarak ele alınır. İSteği gönderen uygulama client, isteğe yanıtı gönderen uygulamaya ise server adı verilir. Örneği Google Maps uygulaması buna bir örnektir, siz haritada bir yeri görüntülemek için istek atarsınız ve sunucu da buna yanıt verir. Facebook API, Google Maps API veya GitHub API gibi büyük API'ların dışında, OOP Public Methods, Node.js FS modülleri de örnek olarak verilebilir.

redhat-com-API.png

image: redhat.com - https://www.redhat.com/en/topics/api/what-are-application-programming-interfaces

Neden API Kullanırız?

- İş yükünü hafifletir,

- Platformdan bağımsız çalışırlar,

- Kitlelerimize büyük verileri hızlı bir şekilde ulaştırabiliriz,

- Güncelleme durumunda bizim yapacağımız işlemler sınırlıdır, çok yük oluşturmaz.

REST API Nedir?

REST, "REpresentational State Transfer" cümlesinin kısaltılmış halidir ve CLIENT / SERVER arasındaki haberleşmeyi sağlayan HTTP protokolü üzerinde çalışır. Haberleşme görevini CLIENT ve SERVER arasında JSON/XML formatında verileri taşıyarak gerçekleştirir.

Roy Fielding tarafından tanıtılan REST bir mimaridir, standart değil. Fielding, REST'i geliştirirken HTTP ile birlikte geliştirmiştir ve daha önce de belirttiğim gibi yaygın olarak HTTP üzerinden kullanılır. HTTP bir standart olsa da, REST'in kendisi bir mimaridir.

REST mimarisi 6 temel prensip üzerine inşa edilmiştir;

- Client/Server: Bu prensibe göre client ve server birbirinin sorumluluk alanına girmez, birbirinden farklı teknolojiler kullanabilirler.

- Uniform Interface (Tek Tip arayüz): Bu kısıta göre aynı kaynağa gelen istekler hep aynı şekilde karşılanmalıdır. Aynı kaynak için tüm API istekleri, istek nereden gelirse gelsin aynı görünmelidir, REST API, bir kullanıcının adı veya e-posta adresi gibi aynı veri parçasının yalnızca tek tip kaynak tanımlayıcısına (URI) ait olmasını sağlamalıdır.

- Statelessness (Durumsuzluk): Her isteğin işlenmesi için gerekli tüm bilgiler gelen cevapta bulunmalıdır. Başka bir deyişle, REST API'leri herhangi bir sunucu tarafı oturumu gerektirmez ve sunucu uygulamalarının, bir istemci isteğiyle ilgili herhangi bir veriyi depolamasına izin verilmez.

- Cacheable (Önbelleklenebilirlik): Sunucu gelen isteklere verilen cevapların önbelleklenebilir olup olmadığını belirtmelidir. Mümkün olduğunda, veriler istemci veya sunucu tarafında önbelleğe alınabilir olmalıdır.

- Layered System (Katmanlı Sistem): Mimari her zaman client’in direkt bir server’a istek göndermesi ve ondan cevap alması şeklinde olmak zorunda değildir. Bu aşamada aralarda güvenlik katmanı, cache katmanı gibi katmanlar da olabilir.

- Code on Demand - Opsiyonel: REST API'leri genellikle statik cevaplar gönderir, ancak bazı durumlarda yanıtlar ayrıca çalıştırılabilir kod (Çalıştırılabilir scriptler gibi) içerebilir. Ancak bu opsiyoneldir.

NOT: Bu 6 prensibin tamamını karşılayan API'lere RESTful API denir.

HTTP Nedir: Metotları ve Örnekleri

HTTP, Hyper Text Transfer Protocol ifadesinin kısaltmasıdır. İstemci ile sunucu arasındaki veri akışının kurallarını belirleyen protokoldür. request - response modeline göre çalışır.

Web geliştiricilerin kullandığı HTTP metotları, bir REST API'a yapılan isteğin türünü tanımlar. Genellikle GET ve POST metotlarına aşina olunsada birçok HTTP metotu vardır.

Yaygın olarak kullanılan HTTP metotları

- GET: veri almak için

- POST: yeni veri eklemek için

- PUT: mevcut veriyi güncellemek için

- PATCH: mevcut verinin bir alt kümesini güncellemek için

- DELETE: veri silmek için

Örnekler

- GET /api/languages: dillerin bir listesini almak için

- POST /api/languages: yeni bir dil eklemek için

- GET /api/languages/tr: tekil olarak bir dil almak için (örneğin tr: Türkçe)

- PUT /api/languages/tr: tekil olarak bir dili güncellemek için (örneğin tr: Türkçe)

- DELETE /api/languages/tr: tekil olarak dil silmek için

Data Formatları

Yapılan API isteklerinin çoğu server'dan client'ın yorumlaması gereken içeriği geriye döndürür. Bu içerik çok nadiren düz bir metindir metindir, genellikle yapılandırılmış bir veri formatı kullanılır ve bunlar da genellikle en sık kullanılan veri formatları olan JSON ve XML'dir.

JSON Nedir?

Veri depolamak veya veri iletmek için kullanılan, bütün programlama dilleri arasında veri değişimini kolaylaştıran bir metin tabanlı bir formattır. Genellikle bir server ve client arasında veri alışverişi için veya yazılımların genel ayarları için kullanılır.

Kaynak

- aws.amazon.com

- blog.stoplight.io

- www.redhat.com

- www.ibm.com

featured image: RyanMcGuire: https://pixabay.com/tr/users/ryanmcguire-123690/