{"id":5659,"date":"2025-12-18T10:00:38","date_gmt":"2025-12-18T07:00:38","guid":{"rendered":"https:\/\/www.turkticaret.net\/blog\/?p=5659"},"modified":"2025-12-19T10:04:11","modified_gmt":"2025-12-19T07:04:11","slug":"rest-api-nedir-nasil-calisir","status":"publish","type":"post","link":"https:\/\/www.turkticaret.net\/blog\/rest-api-nedir-nasil-calisir\/","title":{"rendered":"Rest API Nedir, Nas\u0131l \u00c7al\u0131\u015f\u0131r?"},"content":{"rendered":"<p>G\u00fcn\u00fcm\u00fcz dijital d\u00fcnyas\u0131nda web siteleri, mobil uygulamalar ve yaz\u0131l\u0131mlar birbiriyle s\u00fcrekli ileti\u015fim h\u00e2lindedir. Bu ileti\u015fimi m\u00fcmk\u00fcn k\u0131lan en temel yap\u0131lar\u0131n ba\u015f\u0131nda <strong>API\u2019ler<\/strong> gelir. \u00d6zellikle modern yaz\u0131l\u0131m projelerinde s\u0131kl\u0131kla kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z <strong>REST API<\/strong> kavram\u0131, veri al\u0131\u015fveri\u015finin standart ve \u00f6l\u00e7eklenebilir bir \u015fekilde yap\u0131lmas\u0131n\u0131 sa\u011flar. Bu yaz\u0131da anahtar kelimemiz <strong>\u201capi nedir\u201d<\/strong> olacak \u015fekilde, REST API kavram\u0131n\u0131 t\u00fcm y\u00f6nleriyle ele alaca\u011f\u0131z.<\/p>\n<h2>REST API Nedir?<\/h2>\n<p><strong>API nedir?<\/strong> sorusuyla ba\u015flamak en do\u011frusu olacakt\u0131r. API (Application Programming Interface), iki farkl\u0131 yaz\u0131l\u0131m\u0131n birbiriyle haberle\u015fmesini sa\u011flayan bir aray\u00fczd\u00fcr. API\u2019ler sayesinde bir uygulama, ba\u015fka bir uygulaman\u0131n sundu\u011fu fonksiyonlar\u0131 ya da verileri do\u011frudan eri\u015fim sa\u011flamadan kullanabilir.<\/p>\n<p><strong>REST API<\/strong>, API mimarileri aras\u0131nda en yayg\u0131n kullan\u0131lan yakla\u015f\u0131mlardan biridir. REST (Representational State Transfer), web servislerinin HTTP protokol\u00fc \u00fczerinden, belirli kurallar \u00e7er\u00e7evesinde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan bir mimari stildir. REST API\u2019ler; sade yap\u0131lar\u0131, performansl\u0131 \u00e7al\u0131\u015fmalar\u0131 ve \u00f6l\u00e7eklenebilir olmalar\u0131 nedeniyle tercih edilir.<\/p>\n<p>REST API\u2019nin temel \u00f6zellikleri \u015funlard\u0131r:<\/p>\n<ul data-spread=\"false\">\n<li>\u0130stemci\u2013sunucu mimarisi ile \u00e7al\u0131\u015f\u0131r<\/li>\n<li>Durumsuzdur (stateless)<\/li>\n<li>HTTP protokol\u00fcn\u00fc kullan\u0131r<\/li>\n<li>Genellikle JSON veya XML veri formatlar\u0131yla veri al\u0131\u015fveri\u015fi yapar<\/li>\n<\/ul>\n<p>Bu \u00f6zellikler sayesinde REST API\u2019ler, web ve mobil uygulamalarda standart h\u00e2line gelmi\u015ftir.<\/p>\n<h2>REST API Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h2>\n<p>REST API\u2019nin \u00e7al\u0131\u015fma mant\u0131\u011f\u0131 olduk\u00e7a nettir. Bir istemci (\u00f6rne\u011fin bir web sitesi veya mobil uygulama), sunucuya HTTP istekleri g\u00f6nderir. Sunucu ise bu iste\u011fi i\u015fler ve uygun bir HTTP yan\u0131t\u0131 ile geri d\u00f6ner.<\/p>\n<p>Bu s\u00fcre\u00e7te:<\/p>\n<ol start=\"1\" data-spread=\"false\">\n<li>\u0130stemci, belirli bir URL (endpoint) \u00fczerinden API\u2019ye istek g\u00f6nderir.<\/li>\n<li>\u0130stek, HTTP metodlar\u0131ndan biriyle yap\u0131l\u0131r (GET, POST, PUT, DELETE gibi).<\/li>\n<li>Sunucu iste\u011fi de\u011ferlendirir ve ilgili kayna\u011fa eri\u015fir.<\/li>\n<li>Sonu\u00e7, genellikle JSON format\u0131nda istemciye iletilir.<\/li>\n<\/ol>\n<p>REST API\u2019lerin <strong>durumsuz (stateless)<\/strong> olmas\u0131, her iste\u011fin ba\u011f\u0131ms\u0131z olarak de\u011ferlendirilmesi anlam\u0131na gelir. Yani sunucu, \u00f6nceki isteklere dair herhangi bir bilgiyi hat\u0131rlamaz. Bu durum hem g\u00fcvenlik hem de performans a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck avantaj sa\u011flar.<\/p>\n<h2>REST API Hangi Projelerde Kullan\u0131l\u0131r?<\/h2>\n<p>REST API\u2019ler, g\u00fcn\u00fcm\u00fczde neredeyse t\u00fcm dijital projelerin merkezinde yer al\u0131r. \u00d6zellikle a\u015fa\u011f\u0131daki alanlarda yo\u011fun olarak kullan\u0131l\u0131r:<\/p>\n<ul data-spread=\"false\">\n<li><strong>Web uygulamalar\u0131<\/strong>: Front-end ve back-end aras\u0131ndaki veri ileti\u015fimi<\/li>\n<li><strong>Mobil uygulamalar<\/strong>: iOS ve Android uygulamalar\u0131n\u0131n sunucu ile haberle\u015fmesi<\/li>\n<li><strong>E-ticaret projeleri<\/strong>: \u00dcr\u00fcn, sipari\u015f, \u00f6deme ve kargo entegrasyonlar\u0131<\/li>\n<li><strong>\u00dc\u00e7\u00fcnc\u00fc parti servis entegrasyonlar\u0131<\/strong>: \u00d6deme sistemleri, kargo firmalar\u0131, CRM yaz\u0131l\u0131mlar\u0131<\/li>\n<li><strong>IoT projeleri<\/strong>: Cihazlar aras\u0131 veri transferi<\/li>\n<\/ul>\n<p>API nedir sorusuna verilebilecek en net yan\u0131t da burada ortaya \u00e7\u0131kar: API\u2019ler, farkl\u0131 sistemleri bir araya getirerek b\u00fct\u00fcnle\u015fik bir yap\u0131 olu\u015fturur.<\/p>\n<h2>HTTP Metodlar\u0131 (GET, POST, PUT, DELETE) Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h2>\n<p>REST API mimarisinde veri i\u015flemleri, HTTP metodlar\u0131 \u00fczerinden ger\u00e7ekle\u015ftirilir. En s\u0131k kullan\u0131lan HTTP metodlar\u0131 \u015funlard\u0131r:<\/p>\n<h3>GET<\/h3>\n<ul data-spread=\"false\">\n<li>Sunucudan veri almak i\u00e7in kullan\u0131l\u0131r<\/li>\n<li>Veri \u00fczerinde herhangi bir de\u011fi\u015fiklik yapmaz<\/li>\n<li>\u00d6rne\u011fin: \u00dcr\u00fcn listesini g\u00f6r\u00fcnt\u00fcleme<\/li>\n<\/ul>\n<h3>POST<\/h3>\n<ul data-spread=\"false\">\n<li>Sunucuya yeni veri eklemek i\u00e7in kullan\u0131l\u0131r<\/li>\n<li>Form g\u00f6nderimleri ve kay\u0131t i\u015flemleri bu metodla yap\u0131l\u0131r<\/li>\n<li>\u00d6rne\u011fin: Yeni kullan\u0131c\u0131 olu\u015fturma<\/li>\n<\/ul>\n<h3>PUT<\/h3>\n<ul data-spread=\"false\">\n<li>Mevcut bir veriyi g\u00fcncellemek i\u00e7in kullan\u0131l\u0131r<\/li>\n<li>T\u00fcm kayna\u011f\u0131 g\u00fcnceller<\/li>\n<li>\u00d6rne\u011fin: Kullan\u0131c\u0131 bilgilerini de\u011fi\u015ftirme<\/li>\n<\/ul>\n<h3>DELETE<\/h3>\n<ul data-spread=\"false\">\n<li>Sunucudaki bir veriyi silmek i\u00e7in kullan\u0131l\u0131r<\/li>\n<li>Geri d\u00f6n\u00fc\u015f\u00fc olmayan i\u015flemlerde dikkatli kullan\u0131lmal\u0131d\u0131r<\/li>\n<\/ul>\n<p>Bu metodlar sayesinde REST API, CRUD (Create, Read, Update, Delete) i\u015flemlerini standart bir \u015fekilde sunar.<\/p>\n<h2>REST API ile Veri Al\u0131\u015fveri\u015fi Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>REST API ile veri al\u0131\u015fveri\u015fi genellikle <strong>JSON<\/strong> format\u0131 \u00fczerinden ger\u00e7ekle\u015ftirilir. JSON, hafif yap\u0131s\u0131 ve kolay okunabilir olmas\u0131 nedeniyle en \u00e7ok tercih edilen veri format\u0131d\u0131r.<\/p>\n<p>Veri al\u0131\u015fveri\u015fi s\u00fcreci \u015fu ad\u0131mlardan olu\u015fur:<\/p>\n<ul data-spread=\"false\">\n<li>\u0130stemci, API endpoint\u2019ine istek g\u00f6nderir<\/li>\n<li>\u0130stek ba\u015fl\u0131klar\u0131nda (headers) yetkilendirme ve i\u00e7erik bilgileri yer al\u0131r<\/li>\n<li>Sunucu iste\u011fi i\u015fler ve uygun yan\u0131t kodu (200, 201, 404, 500 vb.) d\u00f6ner<\/li>\n<li>Yan\u0131t g\u00f6vdesinde (response body) veri yer al\u0131r<\/li>\n<\/ul>\n<p>Bu yap\u0131, hem geli\u015ftiriciler hem de sistemler i\u00e7in h\u0131zl\u0131 ve g\u00fcvenilir bir ileti\u015fim sa\u011flar.<\/p>\n<h2>REST API G\u00fcvenli\u011fi Nas\u0131l Sa\u011flan\u0131r?<\/h2>\n<p>REST API kullan\u0131rken g\u00fcvenlik en kritik konular\u0131n ba\u015f\u0131nda gelir. Yetkisiz eri\u015fimleri engellemek ve verileri korumak i\u00e7in \u00e7e\u015fitli y\u00f6ntemler kullan\u0131l\u0131r:<\/p>\n<ul data-spread=\"false\">\n<li><strong>HTTPS kullan\u0131m\u0131<\/strong>: Veri transferi \u015fifrelenir<\/li>\n<li><strong>API anahtarlar\u0131 (API Key)<\/strong>: Yetkilendirme sa\u011flar<\/li>\n<li><strong>Token tabanl\u0131 kimlik do\u011frulama (JWT, OAuth)<\/strong><\/li>\n<li><strong>IP k\u0131s\u0131tlamalar\u0131<\/strong><\/li>\n<li><strong>Rate limiting<\/strong>: A\u015f\u0131r\u0131 isteklerin \u00f6n\u00fcne ge\u00e7er<\/li>\n<\/ul>\n<p>\u00d6zellikle kullan\u0131c\u0131 verileriyle \u00e7al\u0131\u015fan projelerde, REST API g\u00fcvenli\u011fi ihmal edilmemelidir. Aksi h\u00e2lde veri s\u0131z\u0131nt\u0131lar\u0131 ve sistem a\u00e7\u0131klar\u0131 ciddi sorunlara yol a\u00e7abilir.<\/p>\n<p>\u00d6zetle, <strong>api nedir<\/strong> sorusunun cevab\u0131 modern yaz\u0131l\u0131m d\u00fcnyas\u0131n\u0131n temel ta\u015flar\u0131ndan birine i\u015faret eder. REST API\u2019ler, sistemler aras\u0131 ileti\u015fimi standartla\u015ft\u0131rarak h\u0131zl\u0131, g\u00fcvenli ve \u00f6l\u00e7eklenebilir \u00e7\u00f6z\u00fcmler sunar. Web ve mobil projelerde ba\u015far\u0131l\u0131 bir altyap\u0131 kurmak isteyen herkesin REST API mant\u0131\u011f\u0131n\u0131 iyi kavramas\u0131 b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r.<\/p>\n<p>Di\u011fer blog yaz\u0131lar\u0131m\u0131za g\u00f6z gezdirmek ve okumak isterseniz <a href=\"https:\/\/www.turkticaret.net\/blog\/\">t\u0131klayabilirsiniz.<\/a><\/p>\n<h2>Kaynak\u00e7a<\/h2>\n<ul data-spread=\"false\">\n<li>Roy Fielding \u2013 Architectural Styles and the Design of Network-based Software Architectures<\/li>\n<li>MDN Web Docs \u2013 HTTP ve REST API Dok\u00fcmantasyonu<\/li>\n<li>RESTful API Design \u2013 Best Practices<\/li>\n<li>JSON.org Resmi Dok\u00fcmantasyonu<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>G\u00fcn\u00fcm\u00fcz dijital d\u00fcnyas\u0131nda web siteleri, mobil uygulamalar ve yaz\u0131l\u0131mlar birbiriyle s\u00fcrekli ileti\u015fim h\u00e2lindedir. Bu ileti\u015fimi m\u00fcmk\u00fcn k\u0131lan en temel yap\u0131lar\u0131n ba\u015f\u0131nda API\u2019ler gelir. \u00d6zellikle modern yaz\u0131l\u0131m projelerinde s\u0131kl\u0131kla kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z REST API kavram\u0131, veri al\u0131\u015fveri\u015finin standart ve \u00f6l\u00e7eklenebilir bir \u015fekilde yap\u0131lmas\u0131n\u0131 sa\u011flar. Bu yaz\u0131da anahtar kelimemiz \u201capi nedir\u201d olacak \u015fekilde, REST API kavram\u0131n\u0131 t\u00fcm y\u00f6nleriyle ele [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":5664,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[51],"tags":[],"_links":{"self":[{"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/posts\/5659"}],"collection":[{"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/comments?post=5659"}],"version-history":[{"count":6,"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/posts\/5659\/revisions"}],"predecessor-version":[{"id":8193,"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/posts\/5659\/revisions\/8193"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/media\/5664"}],"wp:attachment":[{"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/media?parent=5659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/categories?post=5659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.turkticaret.net\/blog\/wp-json\/wp\/v2\/tags?post=5659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}