Giriş Yap / Kayıt Ol

REST API, geliştiricilerin HTTP protokolünü kullanarak GET ve POST gibi isteklerde bulunup, bu isteklere çeşitli formatlarda yanıt aldığı bir dağıtık sistemdir. REST (REpresentational State Transfer), Temsili Durum Aktarımı olarak Türkçede de kullanılır. REST’in tüm prensiplerini yerine getiren API’ler ise RESTful olarak nitelendirilir. REST API ilk defa 2000 yılında Roy Fielding tarafından doktora tezinin bir bölümü olarak geliştirilmiş ve ardından geliştiricilerce kabul görmüştür. REST API, web mimarisi kısmında çalışsın veya çalışmasın her geliştiricinin birgün ihtiyaç duyabileceği popüler bir API’dir.

REST API, gelişticilerin hakim olduğu SOAP ve WSDL tabanlı web servislerine benzer ancak daha basite indirgenerek geliştirilmiştir. REST API kullanılırken web tarayıcılarının sayfa transfer sürecini bir parçası olan HTTP fiilleri kullanılarak haberleşilir. Dolayısıyla geliştirici olarak size tanıdık gelen GET, POST, PUT DELETE vb. filler REST API ile haberleşmede oldukça yaygın kullanılır. HTTP protokolünü kullanıyor olması nedeniyle REST API’i pratik olarak herhangi bir programlama dilinde kullanabilir. REST API’yi yazılımlarınızda kullanarak yazılımınızın uzun ömürlü olmasını sağlayabilir ve gelişimini pozitif yönde destekleyebilirsiniz.

REST ile aktarılan verilerin formatı HTML, JSON, XML veya farklı bir formata sahip olabilir. Diğer katı kurallı ve dediğim dedik API’lerin aksine REST, geliştiriciler için bu konuya bir kısıtlama getirmiyor.

REST API Örneği

REST API

REST API, Parse kullanarak herhangi bir isteği HTTP üzerinden kullanmaya yardımcı olur. REST için Parse tanım örneklerine göz atmak adına buradaki linke uğrayabilirsiniz. Kapsamlı olmasa da REST API adına basit bir örnek vererek, bu API’nin tam olarak ne şekilde işleyeceğinizi, popüler bir REST API örneğiyle ilişkilendirebiliriz:

Twitter’ın oldukça popüler bir REST API’si mevcut. Bu API yardımıyla son tweet’leri çekebilir, ya da ekleyeceğiniz çeşitli parametrelerle arama dizgisi veya hashtag’in sonucunu JSON formatında sonuç olarak alabilirsiniz. Örneği HTTP isteği göndererek Twitter API üzerinden “wmaraci” sözcüğüyle eşleşen en güncel tweet’leri çekmek için şu kod satırını kullanabilirsiniz;

http://search.twitter.com/search.json?q=wmaraci&result_type=recent&rpp=3

Bir yazılım, geliştiriciler için REST API yeteneklerini kendisi belirler. Bu yeteneklerin nasıl ve ne şekilde kullanılacağını, parametreleri, yanıt formatını, istek sorgusu sınırını, genel kullanım durumunu, API anahtarlarını, metotları (GET, POST, PUT ve DELETE gibi), dil desteğini, Callback kullanımını, HTTPS desteğini ve diğer kullanımları açıklaması gerekir. API’ye ilişkin olarak şirketin yayınladığı dokümantasyonu incelemeniz halinde, API’yi kullanmanız için birinci dereceden önem arz eden bu özellikleri kavrayabilirsiniz.

RESTful API Nedir?

RESTful API,bir API’nin REST mimarisinin tüm sınırlamalarına sahip olması durumunda API’yi tasvir etmek için kullanılan sıfattır. Hemen aşağıda mini liste olarak yer verdiğimiz içeriklere sahip API’ler, RESTful API olarak adlandırırlar. Listedeki sınırlamalardan tek birinin sağlanmaması durumunda bile API, “RESTful” olma özelliğini kaybetmiş olur. Bir API’nin RESTful API mi, yoksa REST API mi olduğu ayrımını yapmak adına bu listeye hakim olmanız tavsiye edilir:

  • İstemci ve sunucu: İstemci front-end, sunucu ise back-end ile ilgilenir. Her ikisi birbirinden bağımsız olarak değiştirilebilir.
  • Durumsuzluk: İstemcinin sorgu ve oturum durumuna dair depolama verileri hiçbir sunucu üzerinde barındırılmaz.
  • Önbellekleme: İstemciler performansı arttırmak için yanıtı (tıpkı bir internet sayfasının statik elementi gibi) önbellekleyebilirler.
  • Tabaklı sistem: İstemci sondaki sunucu veya aradaki süreç boyunca bir aracıya bağlı olup olmadığını söyleyemez.
  • Talep üzerine kod: Sunucular, istemcinin fonksiyonelliğini geçici olarak icra ederek kod yollayabilir, genişletebilir ya da özelleştirebilir.

Değişmeyen arayüz: Değişmeyen arayüz (Uniform interface), RESTful API’nin değişmez temellerini temsil eder. Bu arayüz, mimariyi sadeleştirerek parçalara böler. Bu sayede her taraf birbirinden bağımsız gelişebilir. Değişmeyen arayüze ilişkin dört sınırlama vardır. Karışmaması namına bu maddeye ayrı bir mini listeyle devam edeceğiz ancak “değişmeyen arayüz” bir RESTful API’nin temeli olup, bu eleman yukarıdaki listeden bağımsız değildir.

  • Kaynakların belirlenmesi: Kaynakların belirlenmesi, RESTful API için bir esastır. Kaynaklar isteklerle belirlenir. Bu genellikle web tabanlı sistemlerde değişmeyen arayüz kaynak kimliği (uniform resource identifier, URI) kullanılarak gerçekleştirilir. Kaynaklar sunumlarla aynı değildirler. Sunucu hiçbiri dahili sunuma sahip olmamasına rağmen veritabanından gelen sonuç verisini HTML, JSON veya XML olarak gönderebilir.
  • Bu temsiller yoluyla kaynakların manipülasyonu: Herhangi bir istemci, temsili kaynağı bağlı bir metaveriyle birlikteyse kaynağı değiştirmek veya silmek için yeteri kadar bilgisi vardır.
  • Kendinden açıklayıcı mesajlar: Mesajların tümünde nasıl işleneceğine dair yeterli bilgi vardır. Örneğin ayrıştırıcının çalıştıracağı bir internet medya tipi ile belirlenmiştir.
  • Aplikasyon durumu motoru olarak hipermedya: İstemciler durumu değişikliğini sunucu tarafından belirlenen dinamik eylemlerle yapabilirler.

Aklına bir soru mu takıldı? O zaman uzmana sor:

WM Aracı Maskotu Boa WM Aracı © 2010 - 2018
Bir Boğa Bilişim markası.
Cesur.NETWM Aracı Cesur.NET İnternet Teknolojileri'nde güvenle barınmaktadır.