22.06.2023
13
Like
586
Views
API (Application Programming Interface) Uygulama programlama arabirimi, diğer yazılım sistemleriyle iletişim kurmak için uymanız gereken kuralları tanımlar. Geliştiriciler, diğer uygulamaların kendi uygulamalarıyla programlama yoluyla iletişim kurabilmesi için API’ler sunar veya oluşturur.
Bir web API’sini, web’deki istemciler ile kaynaklar arasındaki bir ağ geçidi olarak düşünebilirsiniz.
İstemciler, web’deki bilgilere erişmek isteyen kullanıcılardır. İstemci, API’yi kullanan bir kişi veya yazılım sistemi olabilir. Örneğin, geliştiriciler bir hava durumu sistemindeki hava durumu verilerine erişen programlar yazabilir. Ya da doğrudan hava durumu web sitesini ziyaret ettiğinizde aynı verilere tarayıcınızdan erişebilirsiniz.
Kaynaklar, farklı uygulamaların istemcilerine sağladığı bilgilerdir. Kaynaklar; görüntü, video, metin, sayı veya herhangi türde bir veri olabilir. Kaynağı istemciye sunan makineye ise sunucu adı verilir. Kuruluşlar; güvenlik, denetim ve kimlik doğrulaması sağlarken kaynakları paylaşmak ve web hizmetleri sunmak için API’leri kullanır. Ek olarak, API’ler kuruluşların belirli dahili kaynaklara hangi istemcilerin erişebileceğini belirlemesine de yardımcı olur.
API Temel Konumu
RESTful API, iki bilgisayar sisteminin internet üzerinden güvenli bir şekilde bilgi alışverişi yapmak için kullandığı bir arabirimdir. Çoğu iş uygulaması, çeşitli görevleri gerçekleştirmek için diğer dahili ve üçüncü taraf uygulamalarla iletişim kurmak zorundadır ve bunu REST standartlarında yapılan API’ lere REST API denir. REST mimarisini uygulayan web hizmetlerine RESTful denir. RESTful API terimi genellikle RESTful web API’lerini ifade eder. Bununla birlikte, REST API ve RESTful API terimlerini birbirinin yerine kullanabilirsiniz.
Peki REST Ne ???
Temsili Durum Aktarımı (REST), bir API’nin nasıl çalışması gerektiğine ilişkin koşulları uygulamaya koyan bir yazılım mimarisidir. REST, başlangıçta internet gibi karmaşık bir ağdaki iletişimi yönetmek için bir kılavuz olarak oluşturulmuştu. REST tabanlı mimariyi yüksek performanslı ve güvenilir iletişimi doğru ölçekte desteklemek için kullanabilirsiniz. Bu mimariyi kolayca uygulayabilir, değiştirebilir ve böylece, herhangi bir API sistemine görünürlük ve platformlar arası taşınabilirlik sağlayabilirsiniz.
API geliştiricileri, birkaç farklı mimariyi kullanarak API’ler tasarlayabilir. REST mimari stiline uygun API’lere REST API’ler adı verilir. REST mimarisini uygulayan web hizmetlerine RESTful web hizmetleri adı verilir. RESTful API terimi genellikle RESTful web API’lerini ifade eder.
REST mimari stiline ilişkin ilkelerden bazılarını aşağıda bulabilirsiniz:
Tek biçimli arabirim, herhangi bir RESTful web hizmetinin tasarımı için esastır. Sunucunun, bilgileri standart bir formatta aktardığını belirtir. Biçimlendirilen kaynağa REST’te gösterim adı verilir. Bu format, kaynağın sunucu uygulamasındaki dahili gösteriminden farklı olabilir. Örneğin, sunucu, verileri metin olarak saklarken HTML gösterim formatında gönderebilir.
Tek biçimli arabirimde dört mimari kısıtlama bulunur:
REST mimarisinde durumsuzluk, sunucunun her istemci isteğini önceki tüm isteklerden bağımsız olarak tamamladığı bir iletişim yöntemini ifade eder. İstemciler, kaynakları istedikleri sırada talep edebilir ve her istek ya durumsuzdur ya da diğer isteklerden yalıtılmıştır. Bu REST API tasarımı kısıtlaması, sunucunun isteği her seferinde tam olarak anlayabileceği ve yerine getirebileceği anlamına gelir.
Katmanlı bir sistem mimarisinde istemci, kendisiyle sunucu arasındaki diğer yetkili aracılara bağlayabiliriz ve sunucudan yanıt almaya devam edebiliriz. Sunucular, istekleri diğer sunuculara da aktarabilir. RESTful web hizmetimizi, istemci isteklerini yerine getirmek için birlikte çalışan güvenlik, uygulama ve iş mantığı gibi birden çok katmana sahip birkaç sunucuda çalışacak şekilde tasarlayabiliriz. Bu katmanlar, istemci tarafından görülmez.
RESTful web hizmetleri, sunucu yanıt süresini iyileştirmek için bazı yanıtları istemcide veya bir aracıda saklama süreci olan önbelleğe almayı destekler. Her sayfada ortak üst bilgi ve alt bilgi görüntüleri olan bir web sitesini ziyaret ettiğinizi varsayalım. Yeni bir web sitesi sayfasını her ziyaret ettiğinizde, sunucunun aynı görüntüleri yeniden göndermesi gerekir. Bunu önlemek için istemci, ilk yanıttan sonra bu görüntüleri önbelleğe alır veya depolar ve ardından görüntüleri doğrudan önbellekten kullanır. RESTful web hizmetleri, önbelleğe alma sürecini kendilerini önbelleğe alınabilir veya önbelleğe alınamaz olarak tanımlayan API yanıtlarını kullanarak kontrol eder.
REST mimari stilinde sunucular, yazılım programlama kodunu istemciye aktararak istemci işlevselliğini geçici olarak uzatabilir veya özelleştirebilir. Örneğin, herhangi bir web sitesindeki bir kayıt formunu doldurduğunuzda, tarayıcınız yaptığınız hataları (ör. yanlış Kimlik Numarası, Kayıtlı e-mail vb.) hemen öne çıkarır. Tarayıcınız bunu, sunucu tarafından gönderilen kod sayesinde yapar.
REST api TemsiliRESTful API’lerin avantajlarından bazıları şunlardır:
REST, istemci-sunucu etkileşimlerini optimize ettiğinden, REST API’leri uygulayan sistemler verimli şekilde ölçeklendirme yapabilir. Durumsuzluk; sunucunun, geçmiş istemci istek bilgilerini saklaması gerekmediğinden sunucu yükünü ortadan kaldırır. İyi yönetilen önbelleğe alma süreci, bazı istemci-sunucu etkileşimlerini kısmen veya tamamen ortadan kaldırır. Tüm bu özellikler, performansı azaltan iletişim tıkanıklıklarına neden olmadan ölçeklendirmeyi destekler.
RESTful web hizmetleri, toplam istemci-sunucu ayrımını destekler. Bu hizmetler, her bir parçanın bağımsız olarak gelişebilmesi için çeşitli sunucu bileşenlerini basitleştirir ve birbirinden ayırır. Sunucu uygulamasındaki platform veya teknoloji değişiklikleri, istemci uygulamasını etkilemez. Uygulama işlevlerini katmanlama özelliği, esnekliği daha da artırır. Örneğin, geliştiriciler uygulama mantığını yeniden yazmadan veritabanı katmanında değişiklikler yapabilir.
REST API’ler, kullanılan teknolojiden bağımsızdır. API tasarımını etkilemeden hem istemci hem de sunucu uygulamalarını çeşitli programlama dillerinde yazabilirsiniz. Ayrıca, iletişimi etkilemeden her iki taraftaki temel teknolojiyi de değiştirebilirsiniz.
Daha detaylı açıklamayı aşağıda videoda bulabilirsiniz.
Bir RESTful API’nin temel işlevi, internette gezinmeyle aynıdır. İstemci, bir kaynağa ihtiyaç duyduğunda API’yi kullanarak sunucu ile iletişime geçer. API geliştiricileri, istemcinin REST API’yi nasıl kullanması gerektiğini sunucu uygulamasının API belgelerinde açıklar. Herhangi bir REST API çağrısına yönelik genel adımlar şunlardır:
REST API isteği ve yanıt ayrıntıları, API geliştiricilerinin API’yi nasıl tasarladığına bağlı olarak farklılıklar gösterir. Buda çok normal bir durumdur.
RESTful API’ler, isteklerin aşağıdaki ana bileşenleri içermesini gerektirir:
Sunucu, her bir kaynağı benzersiz kaynak tanımlayıcılarla tanımlar. REST hizmetlerinde sunucu, kaynak tanımlamasını genellikle Tekdüzen Kaynak Konum Belirleyicisi’ni (URL) kullanarak gerçekleştirir. URL, kaynağa giden yolu belirtir. URL, herhangi bir web sayfasını ziyaret etmek için tarayıcınıza girdiğiniz web sitesi adresine benzer. URL’ye aynı zamanda istek uç noktası (End Point) adı da verilir ve URL, istemcinin ne gerektirdiğini sunucuya açıkça belirtir.
Geliştiriciler, RESTful API’leri genellikle Köprü Metin Aktarım Protokolü’nü (HTTP) kullanarak uygular. Bir HTTP yöntemi, sunucuya kaynağa ne yapması gerektiğini söyler. Başlıca dört HTTP yöntemi şunlardır:
GET
İstemciler, sunucuda belirtilen URL’de yer alan kaynaklara erişmek için GET isteğini kullanır. İstemciler, GET isteklerini önbelleğe alabilir ve sunucuya verileri göndermeden önce filtreleme talimatı vermek için RESTful API isteğinde parametreler gönderebilir.
POST
İstemciler, verileri sunucuya göndermek için POST isteğini kullanır. Veri gösterimini de isteğe dahil ederler. Aynı POST isteğini birden fazla kez göndermek, aynı kaynağın birden fazla kez oluşturulmasına neden olur.
PUT
İstemciler, sunucudaki mevcut kaynakları güncellemek için PUT yöntemini kullanır. POST’un aksine, RESTful web hizmetinde aynı PUT isteğini birden fazla kez göndermek aynı sonucu doğurur.
DELETE
İstemciler, kaynağı kaldırmak için DELETE isteğini kullanır. Bir DELETE isteği, sunucunun durumunu değiştirebilir. Bununla birlikte, kullanıcı uygun kimlik doğrulamasına sahip değilse istek başarısız olur.
Rest Metod Temsiliİstek üst bilgileri, istemci ile sunucu arasında alışverişi yapılan meta verilerdir. Örneğin, istek üst bilgisi, isteğin ve yanıtın formatını belirtir ve isteğin durumu vb. hakkında bilgi verir.
Veri
REST API istekleri; POST, PUT ve diğer HTTP yöntemlerinin başarıyla çalışması için gereken verileri içerebilir.
Parametreler
RESTful API istekleri, sunucuya yapılması gerekenler hakkında daha fazla ayrıntı sunan parametreleri içerebilir. Farklı parametre türlerinden bazıları şunlardır:
Bir RESTful web hizmeti, bir yanıt göndermeden önce istekleri doğrulamalıdır. Kimlik doğrulama, bir kimliği doğrulama sürecidir. Örneğin, nüfus cüzdanı veya ehliyet göstererek kimliğinizi doğrulayabilirsiniz. Benzer şekilde, RESTful hizmet istemcileri de güven oluşturmak için sunucuya kimliğini kanıtlamalıdır.
RESTful API’lerin başlıca dört kimlik doğrulama yöntemi vardır:
HTTP, REST API’yi uygularken doğrudan kullanabileceğiniz bazı kimlik doğrulama şemalarını tanımlar. Bu şemalardan ikisi aşağıda verilmiştir:
Temel kimlik doğrulaması
Temel kimlik doğrulamasında, istemci kullanıcı adını ve parolayı istek üst bilgisinde gönderir. Bu bilgileri, güvenli aktarım için 64 karakterlik diziye dönüştüren bir kodlama tekniği olan base64 ile kodlar.
Taşıyıcı kimlik doğrulaması
Taşıyıcı kimlik doğrulaması terimi, belirteç taşıyıcısına erişim denetimi verme sürecini ifade eder. Taşıyıcı belirteci, genellikle sunucunun bir oturum açma isteğine yanıt olarak oluşturduğu şifrelenmiş bir karakter dizisidir. İstemci, kaynaklara erişmek için belirteci istek üst bilgilerinde gönderir.
API anahtarları, REST API kimlik doğrulaması için kullanılan bir başka seçenektir. Bu yaklaşımda, sunucu ilk kez istekte bulunan istemciye benzersiz bir değer atar. İstemci, kaynaklara her erişmeye çalıştığında kendisini doğrulamak için benzersiz API anahtarını kullanır. API anahtarları, sunucunun anahtarı aktarması gerektiğinden ve bu da anahtarı ağ hırsızlığına karşı savunmasız hale getirdiğinden daha az güvenlidir.
OAuth, herhangi bir sisteme yüksek güvenlikli giriş erişimi için parolaları ve belirteçleri birleştirir. Sunucu, ilk olarak bir parola talep eder ve ardından kimlik doğrulama sürecini tamamlamak için ek bir belirteç ister. Belirteci, belirli bir kapsam ve yaşam süresi dahilinde istediği zaman ve ayrıca zaman içinde kontrol edebilir. Detaylar için Bakınız .
REST ilkeleri, sunucu yanıtının şu ana bileşenleri içermesini gerektirir:
Durum satırı, isteğin başarılı veya başarısız olduğunu belirten üç haneli bir durum kodu içerir. Örneğin, 2XX kodları başarıyı ifade ederken 4XX ve 5XX kodları hataları belirtir. 3XX kodları ise URL yönlendirmesini ifade eder.
Başlıca durum kodlarından bazıları aşağıdaki gibidir:
Yanıt gövdesi, kaynak gösterimini içerir. Sunucu, istek üst bilgilerinin ne içerdiğine bağlı olarak uygun bir gösterim formatı seçer. İstemciler, bilgileri verilerin düz metin olarak nasıl yazılacağını tanımlayan XML veya JSON formatında talep edebilir. Örneğin, istemci Yakup adında bir kişinin adını ve yaşını talep ederse sunucu, aşağıdaki gibi bir JSON gösterimi sunar:
JSON Veri Temsili
İstek, yanıtla ilgili üst bilgileri veya meta verileri de içerir. Bunlar, yanıt hakkında daha fazla bağlam sunar ve sunucu, kodlama, tarih ve içerik türü gibi bilgileri de içerir.
Şimdilik bu kadar. Umarım yararlı olmuştur. Bende kendimi geliştirmeye çalışıyorum. Herkese mutlu günler…
You need to log in to be able to comment!