{"id":34129,"date":"2025-11-11T15:01:16","date_gmt":"2025-11-11T12:01:16","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/"},"modified":"2025-11-11T15:01:16","modified_gmt":"2025-11-11T12:01:16","slug":"power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/","title":{"rendered":"Power BI ve REST API&#8217;ler: Web Verilerini Etkileyici Dashboard&#8217;lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi"},"content":{"rendered":"<p><body><\/p>\n<p>Dijital \u00e7a\u011fda veri, t\u0131pk\u0131 de\u011ferli bir maden gibi, do\u011fru i\u015flendi\u011finde i\u015fletmeler i\u00e7in paha bi\u00e7ilmez i\u00e7g\u00f6r\u00fcler sunar. Peki, internetin u\u00e7suz bucaks\u0131z verilerini, geleneksel y\u00f6ntemlerle elde etmenin zorluklar\u0131ndan kurtularak, anla\u015f\u0131l\u0131r ve etkileyici dashboard&#8217;lara nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrebiliriz? \u0130\u015fte tam da bu noktada Power BI&#8217;\u0131n g\u00f6rsel g\u00fcc\u00fc ve REST API&#8217;lerin esnekli\u011fi devreye giriyor. Bu rehberimizde, web \u00fczerindeki ham veriyi, birka\u00e7 basit ad\u0131mla nas\u0131l dinamik ve bilgilendirici panolara d\u00f6n\u00fc\u015ft\u00fcrebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. Haz\u0131r olun, verilerle konu\u015fan dashboard&#8217;lar yaratmaya ba\u015fl\u0131yoruz!<\/p>\n<p>G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda, rekabet avantaj\u0131 elde etmenin anahtar\u0131, do\u011fru zamanda do\u011fru bilgiye sahip olmakt\u0131r. Bu bilginin \u00f6nemli bir k\u0131sm\u0131, i\u015fletmenizin kendi i\u00e7 sistemlerinden gelmekle birlikte, \u00e7ok b\u00fcy\u00fck bir dilimi de internet \u00fczerinde, herkese a\u00e7\u0131k veya belirli izinlerle eri\u015filebilen web verilerinden olu\u015fur. M\u00fc\u015fteri davran\u0131\u015flar\u0131, pazar trendleri, rakip analizleri, sosyal medya etkile\u015fimleri, d\u00f6viz kurlar\u0131, hava durumu verileri gibi say\u0131s\u0131z bilgi kayna\u011f\u0131, karar alma s\u00fcre\u00e7lerinizi do\u011frudan etkileyebilir.<\/p>\n<p>Ancak bu de\u011ferli verilere ula\u015fmak, \u00e7o\u011fu zaman sand\u0131\u011f\u0131m\u0131zdan daha karma\u015f\u0131k olabilir. Geleneksel y\u00f6ntemlerle, yani web sitelerinden manuel olarak veri kopyalay\u0131p yap\u0131\u015ft\u0131rmak, hem zaman al\u0131c\u0131 hem de hata yapmaya a\u00e7\u0131k bir s\u00fcre\u00e7tir. Veri hacmi artt\u0131k\u00e7a bu y\u00f6ntem s\u00fcrd\u00fcr\u00fclemez hale gelir. Dahas\u0131, manuel y\u00f6ntemlerle elde edilen veriler genellikle g\u00fcncel de\u011fildir ve anl\u0131k de\u011fi\u015fimleri yakalama konusunda yetersiz kal\u0131r. Bu durum, i\u015fletmelerin dinamik pazar ko\u015fullar\u0131na uyum sa\u011flamas\u0131n\u0131 zorla\u015ft\u0131r\u0131r ve \u00f6nemli f\u0131rsatlar\u0131n ka\u00e7\u0131r\u0131lmas\u0131na neden olabilir.<\/p>\n<p>Peki, bu verileri otomatik, g\u00fcvenilir ve sistematik bir \u015fekilde nas\u0131l toplayabiliriz? \u0130\u015fte burada REST API&#8217;ler devreye giriyor. REST API&#8217;ler, farkl\u0131 yaz\u0131l\u0131m sistemlerinin birbiriyle ileti\u015fim kurmas\u0131n\u0131 sa\u011flayan standartla\u015ft\u0131r\u0131lm\u0131\u015f aray\u00fczlerdir. Bir web sitesinin veya uygulaman\u0131n sundu\u011fu veriye, programatik olarak, yani kod arac\u0131l\u0131\u011f\u0131yla eri\u015fmenizi m\u00fcmk\u00fcn k\u0131lar. \u00d6rne\u011fin, bir hava durumu sitesi, ziyaret\u00e7ilerine g\u00f6rsel bir aray\u00fcz sunarken, ayn\u0131 zamanda hava durumu verilerini almak isteyen di\u011fer uygulamalar i\u00e7in bir REST API de sa\u011flayabilir. Bu sayede, hava durumu verilerini manuel olarak kopyalamak yerine, API&#8217;yi kullanarak do\u011frudan kendi sisteminize \u00e7ekebilir ve Power BI gibi bir i\u015f zekas\u0131 arac\u0131yla g\u00f6rselle\u015ftirebilirsiniz.<\/p>\n<p>Power BI ise, Microsoft&#8217;un g\u00fc\u00e7l\u00fc bir i\u015f zekas\u0131 ve veri g\u00f6rselle\u015ftirme arac\u0131d\u0131r. Farkl\u0131 veri kaynaklar\u0131ndan veri alabilir, bu verileri d\u00f6n\u00fc\u015ft\u00fcrebilir, modelleyebilir ve etkile\u015fimli dashboard&#8217;lar ile raporlar olu\u015fturabilirsiniz. REST API&#8217;lerden al\u0131nan verileri Power BI&#8217;a entegre etmek, manuel veri toplama \u00e7ilesine son vererek, dinamik ve her zaman g\u00fcncel kalacak dashboard&#8217;lar olu\u015fturman\u0131za olanak tan\u0131r. B\u00f6ylece, web \u00fczerindeki ham verileri sadece g\u00f6rmekle kalmaz, ayn\u0131 zamanda i\u015f s\u00fcre\u00e7lerinizi iyile\u015ftirecek eyleme d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilir i\u00e7g\u00f6r\u00fclere sahip olursunuz. Bu rehberin ilerleyen b\u00f6l\u00fcmlerinde, bu iki g\u00fc\u00e7l\u00fc arac\u0131 birle\u015ftirerek, web verilerini nas\u0131l bir sanat eserine d\u00f6n\u00fc\u015ft\u00fcrece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz. \u00d6zellikle, Power BI&#8217;\u0131n &#8220;Web&#8221; ba\u011flay\u0131c\u0131s\u0131 ve Power Query&#8217;nin M dili yetenekleri sayesinde, API&#8217;lerden gelen karma\u015f\u0131k JSON veya XML yap\u0131lar\u0131n\u0131 bile kolayca anla\u015f\u0131l\u0131r tablolara \u00e7evirebileceksiniz. Bu, yaln\u0131zca teknik bir beceri de\u011fil, ayn\u0131 zamanda i\u015f stratejinizi d\u00f6n\u00fc\u015ft\u00fcrecek stratejik bir yetkinlik olacakt\u0131r. Bu nedenle, web verilerinin potansiyelini anlamak ve ona nas\u0131l eri\u015fece\u011fimizi bilmek, dijital \u00e7a\u011fda hayati bir \u00f6neme sahiptir.<\/p>\n<h2>REST API Nedir ve Veri Al\u0131m\u0131 \u0130\u00e7in Neden Hayati Bir Ara\u00e7t\u0131r?<\/h2>\n<p>Dijital d\u00fcnyada, farkl\u0131 uygulamalar ve servisler aras\u0131nda veri al\u0131\u015fveri\u015fi s\u00fcrekli bir ihtiya\u00e7t\u0131r. \u0130\u015fte bu al\u0131\u015fveri\u015fi m\u00fcmk\u00fcn k\u0131lan temel mekanizmalardan biri, <strong>REST API (Representational State Transfer Application Programming Interface)<\/strong>&#8216;lerdir. En basit ifadeyle, bir API&#8217;yi, bir restoran\u0131n men\u00fcs\u00fc ve garsonu gibi d\u00fc\u015f\u00fcnebilirsiniz. Siz (istemci), men\u00fcden bir yemek (veri iste\u011fi) se\u00e7ersiniz ve garson (API), iste\u011finizi mutfa\u011fa (sunucu) iletir, ard\u0131ndan yeme\u011fi size geri getirir (veri yan\u0131t\u0131). REST API&#8217;ler, bu ileti\u015fimin belirli kurallar ve standartlar \u00e7er\u00e7evesinde yap\u0131lmas\u0131n\u0131 sa\u011flayan bir dizi ilke ve k\u0131s\u0131tlamay\u0131 tan\u0131mlar. Bu sayede, geli\u015ftiriciler farkl\u0131 sistemler aras\u0131nda tutarl\u0131 ve \u00f6ng\u00f6r\u00fclebilir bir \u015fekilde ileti\u015fim kurabilirler.<\/p>\n<p>REST API&#8217;lerin temelinde yatan en \u00f6nemli prensiplerden biri, her \u015feyin bir &#8220;kaynak&#8221; (resource) olarak ele al\u0131nmas\u0131d\u0131r. Bu kaynaklar genellikle benzersiz URL&#8217;ler (Uniform Resource Locator) arac\u0131l\u0131\u011f\u0131yla tan\u0131mlan\u0131r. \u00d6rne\u011fin, bir e-ticaret sitesinin \u00fcr\u00fcnlerini almak i\u00e7in <code>https:\/\/api.example.com\/products<\/code> gibi bir URL kullanabilirsiniz. RESTful servisler, bu kaynaklar \u00fczerinde d\u00f6rt temel HTTP metodunu (i\u015flemini) kullan\u0131r:<\/p>\n<ul>\n<li><strong>GET:<\/strong> Belirli bir kaynaktan veri okumak (almak) i\u00e7in kullan\u0131l\u0131r. \u00c7o\u011funlukla Power BI entegrasyonlar\u0131m\u0131zda bu metodu kullan\u0131r\u0131z.<\/li>\n<li><strong>POST:<\/strong> Yeni bir kaynak olu\u015fturmak (veri eklemek) i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><strong>PUT:<\/strong> Mevcut bir kayna\u011f\u0131 tamamen g\u00fcncellemek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><strong>DELETE:<\/strong> Bir kayna\u011f\u0131 silmek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<p>Power BI ile web verilerini \u00e7ekerken genellikle GET metodunu kullan\u0131r\u0131z, \u00e7\u00fcnk\u00fc amac\u0131m\u0131z mevcut veriyi al\u0131p g\u00f6rselle\u015ftirmektir. REST API&#8217;ler, veri al\u0131\u015fveri\u015fi i\u00e7in genellikle <strong>JSON (JavaScript Object Notation)<\/strong> veya <strong>XML (Extensible Markup Language)<\/strong> formatlar\u0131n\u0131 kullan\u0131r. G\u00fcn\u00fcm\u00fczde JSON, hem daha hafif olmas\u0131 hem de okunabilirli\u011fi nedeniyle daha yayg\u0131n olarak tercih edilmektedir. Power BI, bu formatlar\u0131 do\u011fal olarak anlar ve Power Query edit\u00f6r\u00fc sayesinde bu yap\u0131lar\u0131 kolayca tablolar haline d\u00f6n\u00fc\u015ft\u00fcrebiliriz.<\/p>\n<p>Peki, REST API&#8217;ler veri al\u0131m\u0131 i\u00e7in neden bu kadar hayati? \u00d6ncelikle, <strong>otomasyon<\/strong> sa\u011flarlar. Manuel veri kopyalama i\u015flemlerinin aksine, API&#8217;ler sayesinde veri al\u0131m\u0131n\u0131 programlayabilir ve d\u00fczenli aral\u0131klarla otomatik olarak yenileyebilirsiniz. Bu, zaman kazand\u0131r\u0131r ve insan hatas\u0131 riskini minimize eder. \u0130kinci olarak, <strong>g\u00fcncellik<\/strong> sunarlar. API&#8217;ler genellikle en g\u00fcncel veriyi sa\u011flar, bu da dashboard&#8217;lar\u0131n\u0131z\u0131n ve analizlerinizin her zaman do\u011fru ve ilgili bilgilerle beslenmesini garanti eder. \u00dc\u00e7\u00fcnc\u00fcs\u00fc, <strong>yap\u0131land\u0131r\u0131lm\u0131\u015f eri\u015fim<\/strong> sa\u011flarlar. API&#8217;ler, veriye belirli bir formatta ve belirli sorgulama parametreleri ile eri\u015fmenizi sa\u011flar, bu da istedi\u011finiz veriye odaklanman\u0131z\u0131 kolayla\u015ft\u0131r\u0131r. Son olarak, <strong>entegrasyon kolayl\u0131\u011f\u0131<\/strong> sunarlar. Power BI gibi ara\u00e7lar, REST API&#8217;lerden veri \u00e7ekmek i\u00e7in yerle\u015fik ba\u011flay\u0131c\u0131lara ve g\u00fc\u00e7l\u00fc veri d\u00f6n\u00fc\u015f\u00fcm yeteneklerine sahiptir, bu da teknik olmayan kullan\u0131c\u0131lar\u0131n bile API verilerini kullanmas\u0131n\u0131 m\u00fcmk\u00fcn k\u0131lar.<\/p>\n<div class=\"expert-tip\">\n        Uzman \u0130pucu: REST API&#8217;ler genellikle istek limitleri (rate limits) uygular. Yani belirli bir zaman diliminde yapabilece\u011finiz istek say\u0131s\u0131 s\u0131n\u0131rl\u0131d\u0131r. Bu limitleri a\u015fmamak i\u00e7in API dok\u00fcmantasyonunu dikkatlice okuyun ve verilerinizi \u00e7ekerken gecikmeler (delays) eklemeyi veya daha az s\u0131kl\u0131kta yenilemeyi d\u00fc\u015f\u00fcnebilirsiniz. A\u015f\u0131r\u0131 istekler IP adresinizin ge\u00e7ici olarak engellenmesine neden olabilir.\n    <\/div>\n<p>Sonu\u00e7 olarak, REST API&#8217;ler modern veri odakl\u0131 uygulamalar\u0131n ve analizlerin bel kemi\u011fidir. Onlar olmadan, web \u00fczerindeki zengin veri kaynaklar\u0131na sistematik ve verimli bir \u015fekilde eri\u015fmek neredeyse imkans\u0131z olurdu. Power BI ile entegrasyonu sayesinde, bu API&#8217;lerin g\u00fcc\u00fcn\u00fc kullanarak i\u015f zekas\u0131 yeteneklerinizi bir \u00fcst seviyeye ta\u015f\u0131yabilir, anlams\u0131z veri y\u0131\u011f\u0131nlar\u0131n\u0131 anlaml\u0131 hikayelere d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz. Bir sonraki b\u00f6l\u00fcmde, Power BI&#8217;\u0131n &#8220;Web&#8221; ba\u011flay\u0131c\u0131s\u0131 ile bir REST API&#8217;den ad\u0131m ad\u0131m nas\u0131l veri \u00e7ekece\u011fimizi ve bu verileri nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrece\u011fimizi detayl\u0131ca inceleyece\u011fiz.<\/p>\n<h2>Power BI ile Web Verilerini Nas\u0131l G\u00fc\u00e7l\u00fc Dashboard&#8217;lara D\u00f6n\u00fc\u015ft\u00fcr\u00fcr\u00fcz? Ad\u0131m Ad\u0131m Rehber<\/h2>\n<p>Power BI, web tabanl\u0131 verileri, \u00f6zellikle REST API&#8217;lerden gelen JSON veya XML format\u0131ndaki verileri, anla\u015f\u0131l\u0131r ve etkile\u015fimli dashboard&#8217;lara d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in g\u00fc\u00e7l\u00fc ve kullan\u0131c\u0131 dostu ara\u00e7lar sunar. \u0130\u015fte bu s\u00fcreci ad\u0131m ad\u0131m nas\u0131l ger\u00e7ekle\u015ftirece\u011finiz:<\/p>\n<h3>Ad\u0131m 1: Power BI Desktop&#8217;\u0131 A\u00e7\u0131n ve Web Ba\u011flay\u0131c\u0131s\u0131n\u0131 Kullan\u0131n<\/h3>\n<p>\u0130lk olarak, Power BI Desktop uygulaman\u0131z\u0131 a\u00e7\u0131n. \u00dcst men\u00fcden &#8220;Veri Al&#8221; (Get Data) se\u00e7ene\u011fine t\u0131klay\u0131n. A\u00e7\u0131lan pencerede &#8220;Web&#8221; se\u00e7ene\u011fini bulun ve se\u00e7in, ard\u0131ndan &#8220;Ba\u011flan&#8221; (Connect) butonuna t\u0131klay\u0131n.<\/p>\n<p>Yeni bir pencere a\u00e7\u0131lacakt\u0131r. Buraya, veri \u00e7ekmek istedi\u011finiz REST API&#8217;nin URL&#8217;sini yap\u0131\u015ft\u0131r\u0131n. Bu \u00f6rnek i\u00e7in, genellikle denemeler i\u00e7in kullan\u0131lan genel bir API olan <a href=\"https:\/\/jsonplaceholder.typicode.com\/posts\" target=\"_blank\">JSONPlaceholder&#8217;\u0131n posts API&#8217;sini<\/a> kullanabiliriz. URL&#8217;yi yap\u0131\u015ft\u0131rd\u0131ktan sonra &#8220;Tamam&#8221; (OK) deyin.<\/p>\n<pre><code>\nhttps:\/\/jsonplaceholder.typicode.com\/posts\n    <\/pre>\n<p><\/code><\/p>\n<p>Power BI, belirtilen URL'ye bir istek g\u00f6nderecek ve API'den gelen yan\u0131t\u0131 i\u015fleyecektir. E\u011fer yan\u0131t JSON format\u0131ndaysa, Power BI bunu otomatik olarak alg\u0131layacakt\u0131r.<\/p>\n<h3>Ad\u0131m 2: Verileri Power Query D\u00fczenleyicisinde D\u00f6n\u00fc\u015ft\u00fcr\u00fcn<\/h3>\n<p>API'den gelen veriler genellikle do\u011frudan bir tablo format\u0131nda olmaz. \u00d6zellikle JSON verileri, i\u00e7 i\u00e7e ge\u00e7mi\u015f nesneler ve diziler (listeler) \u015feklinde gelebilir. Power BI, bu karma\u015f\u0131k yap\u0131lar\u0131 anla\u015f\u0131l\u0131r bir tabloya d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in Power Query D\u00fczenleyicisi'ni (Power Query Editor) kullan\u0131r.<\/p>\n<p>URL'yi girdi\u011finizde, Power BI veriyi \u00f6nizleme ekran\u0131nda g\u00f6sterecektir. Bu a\u015famada \"D\u00f6n\u00fc\u015ft\u00fcr Veri\" (Transform Data) se\u00e7ene\u011fini se\u00e7erek Power Query D\u00fczenleyicisi'ni a\u00e7\u0131n. Burada, JSONPlaceholder'dan gelen verilerin bir liste (List) \u015feklinde oldu\u011funu g\u00f6receksiniz. Her bir liste \u00f6\u011fesi, bir \"Record\" (Kay\u0131t) olarak g\u00f6r\u00fcnecektir. Bu kay\u0131tlar, API'den gelen her bir g\u00f6nderiyi temsil eder.<\/p>\n<p>\u015eimdi bu listeyi bir tabloya d\u00f6n\u00fc\u015ft\u00fcrmemiz gerekiyor:<\/p>\n<ol>\n<li>Liste \u00fczerinde sa\u011f t\u0131klay\u0131n ve \"Tabloya D\u00f6n\u00fc\u015ft\u00fcr\" (To Table) se\u00e7ene\u011fini se\u00e7in.<\/li>\n<li>A\u00e7\u0131lan pencerede ayarlar genellikle varsay\u0131lan olarak kalabilir, \"Tamam\" deyin. Bu i\u015flemden sonra, her bir kayd\u0131n ayr\u0131 bir sat\u0131rda \"Column1\" ad\u0131nda bir s\u00fctun i\u00e7inde yer ald\u0131\u011f\u0131n\u0131 g\u00f6receksiniz.<\/li>\n<li>\"Column1\" s\u00fctununun ba\u015fl\u0131\u011f\u0131n\u0131n sa\u011f\u0131nda yer alan geni\u015fletme simgesine (iki y\u00f6nl\u00fc ok) t\u0131klay\u0131n. Bu, her bir kay\u0131tta bulunan alanlar\u0131 ayr\u0131 s\u00fctunlara geni\u015fletmenizi sa\u011flar.<\/li>\n<li>A\u00e7\u0131lan pencerede, hangi s\u00fctunlar\u0131 istedi\u011finizi se\u00e7ebilirsiniz (\u00f6rne\u011fin, <code>userId<\/code>, <code>id<\/code>, <code>title<\/code>, <code>body<\/code>). \"Orijinal s\u00fctun ad\u0131n\u0131 \u00f6nek olarak kullan\" (Use original column name as prefix) se\u00e7ene\u011finin i\u015faretini kald\u0131rarak s\u00fctun adlar\u0131n\u0131n daha temiz g\u00f6r\u00fcnmesini sa\u011flayabilirsiniz. Ard\u0131ndan \"Tamam\" deyin.<\/li>\n<\/ol>\n<p>Bu ad\u0131mlar\u0131n sonunda, API'den gelen verilerin d\u00fczenli bir tablo format\u0131na d\u00f6n\u00fc\u015ft\u00fc\u011f\u00fcn\u00fc g\u00f6receksiniz. Art\u0131k her bir g\u00f6nderi, bir sat\u0131rda ve ilgili bilgileri (kullan\u0131c\u0131 kimli\u011fi, g\u00f6nderi kimli\u011fi, ba\u015fl\u0131k, i\u00e7erik) ayr\u0131 s\u00fctunlarda yer al\u0131yor.<\/p>\n<pre><code class=\"language-m\">\n\/\/ \u00d6rnek M dili kodu: Power Query'de bir API'den veri \u00e7ekme ve d\u00f6n\u00fc\u015ft\u00fcrme\nlet\n    Source = Web.Contents(\"https:\/\/jsonplaceholder.typicode.com\/posts\"),\n    JsonContent = Json.Document(Source),\n    #\"Converted to Table\" = Table.FromList(JsonContent, Splitter.None, null, null, ExtraValues.Error),\n    #\"Expanded Column1\" = Table.ExpandRecordColumn(#\"Converted to Table\", \"Column1\", {\"userId\", \"id\", \"title\", \"body\"}, {\"userId\", \"id\", \"title\", \"body\"}),\n    #\"Changed Type\" = Table.TransformColumnTypes(#\"Expanded Column1\",{{\"userId\", Int64.Type}, {\"id\", Int64.Type}, {\"title\", type text}, {\"body\", type text}})\nin\n    #\"Changed Type\"\n    <\/pre>\n<p><\/code><\/p>\n<h3>Ad\u0131m 3: Veri Tiplerini Ayarlay\u0131n ve De\u011fi\u015fiklikleri Uygulay\u0131n<\/h3>\n<p>Power Query D\u00fczenleyicisi'nde, her s\u00fctunun veri tipini kontrol etmek \u00f6nemlidir (\u00f6rne\u011fin, say\u0131lar\u0131n say\u0131, metinlerin metin oldu\u011fundan emin olun). Yanl\u0131\u015f veri tipleri, daha sonra analiz ve g\u00f6rselle\u015ftirmede sorunlara yol a\u00e7abilir. S\u00fctun ba\u015fl\u0131klar\u0131n\u0131n solunda yer alan simgelere t\u0131klayarak veri tiplerini de\u011fi\u015ftirebilirsiniz (\u00f6rne\u011fin, \"123\" tam say\u0131, \"ABC\" metin anlam\u0131na gelir).<\/p>\n<p>T\u00fcm d\u00f6n\u00fc\u015f\u00fcm ad\u0131mlar\u0131n\u0131z\u0131 tamamlad\u0131ktan sonra, Power Query D\u00fczenleyicisi'nin sol \u00fcst k\u00f6\u015fesindeki \"Kapat ve Uygula\" (Close & Apply) butonuna t\u0131klay\u0131n. Bu i\u015flem, verileri Power BI veri modelinize y\u00fckleyecek ve rapor ekran\u0131na geri d\u00f6neceksiniz.<\/p>\n<h3>Ad\u0131m 4: Dashboard'\u0131n\u0131z\u0131 Olu\u015fturun<\/h3>\n<p>Verileriniz Power BI veri modeline y\u00fcklendikten sonra, art\u0131k onlar\u0131 g\u00f6rselle\u015ftirmeye haz\u0131rs\u0131n\u0131z! Rapor ekran\u0131nda, sa\u011f tarafta \"Alanlar\" (Fields) b\u00f6lmesinde, API'den \u00e7ekti\u011finiz s\u00fctunlar\u0131 g\u00f6receksiniz. \u00c7e\u015fitli g\u00f6rselle\u015ftirme t\u00fcrlerini (grafikler, tablolar, kartlar vb.) kullanarak verilerinizi analiz etmeye ba\u015flayabilirsiniz:<\/p>\n<ul>\n<li>\u00d6rne\u011fin, <code>title<\/code> s\u00fctununu bir tablo g\u00f6rseline s\u00fcr\u00fckleyerek t\u00fcm g\u00f6nderi ba\u015fl\u0131klar\u0131n\u0131 listeleyebilirsiniz.<\/li>\n<li><code>userId<\/code> s\u00fctununu kullanarak hangi kullan\u0131c\u0131n\u0131n ka\u00e7 g\u00f6nderi yapt\u0131\u011f\u0131n\u0131 sayabilir ve bunu bir \u00e7ubuk grafik \u00fczerinde g\u00f6sterebilirsiniz.<\/li>\n<li><code>body<\/code> i\u00e7eri\u011fini analiz etmek i\u00e7in metin analizi ara\u00e7lar\u0131 kullanabilir veya anahtar kelime say\u0131mlar\u0131 yapabilirsiniz (daha ileri d\u00fczey).<\/li>\n<\/ul>\n<p>Power BI'\u0131n s\u00fcr\u00fckle ve b\u0131rak aray\u00fcz\u00fc sayesinde, birka\u00e7 dakika i\u00e7inde etkile\u015fimli ve bilgilendirici bir dashboard olu\u015fturabilirsiniz. Ayr\u0131ca, farkl\u0131 g\u00f6rseller aras\u0131nda filtrelemeler ve detayland\u0131rmalar ekleyerek kullan\u0131c\u0131lar\u0131n verileri farkl\u0131 a\u00e7\u0131lardan incelemesine olanak tan\u0131yabilirsiniz.<\/p>\n<p>Bu ad\u0131m ad\u0131m rehber, REST API'lerden web verisi \u00e7ekme ve Power BI'da g\u00f6rselle\u015ftirme s\u00fcrecinin temelini olu\u015fturmaktad\u0131r. Ger\u00e7ek d\u00fcnya senaryolar\u0131nda, API'lerin kimlik do\u011frulama gereksinimleri (API anahtarlar\u0131, OAuth vb.) veya daha karma\u015f\u0131k JSON yap\u0131lar\u0131 olabilir; ancak Power Query'nin esnekli\u011fi, bu zorluklar\u0131n \u00fcstesinden gelmenize yard\u0131mc\u0131 olacak ara\u00e7lar\u0131 sunar. Bir sonraki b\u00f6l\u00fcmde, ger\u00e7ek d\u00fcnya senaryolar\u0131nda API kullan\u0131m\u0131na daha yak\u0131ndan bakaca\u011f\u0131z.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: Sosyal Medya Trendlerini REST API ile Takip Etmek<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz pazar\u0131nda, sosyal medya trendleri ve kamuoyu, markalar ve \u015firketler i\u00e7in hayati \u00f6nem ta\u015f\u0131maktad\u0131r. M\u00fc\u015fterilerin \u00fcr\u00fcnleriniz, hizmetleriniz veya genel sekt\u00f6r hakk\u0131ndaki d\u00fc\u015f\u00fcncelerini anlamak, pazarlama stratejilerini \u015fekillendirmek, \u00fcr\u00fcn geli\u015ftirmeyi y\u00f6nlendirmek ve krizleri y\u00f6netmek i\u00e7in kritik bir i\u00e7g\u00f6r\u00fc kayna\u011f\u0131d\u0131r. Ancak, milyonlarca tweet, g\u00f6nderi, yorum ve etkile\u015fim aras\u0131ndan anlaml\u0131 verileri manuel olarak toplamak, tabiri caizse samanl\u0131kta i\u011fne aramaya benzer. \u0130\u015fte bu noktada REST API'ler, sosyal medya verilerine programatik ve sistematik bir \u015fekilde eri\u015fmenin anahtar\u0131n\u0131 sunar.<\/p>\n<p>Diyelim ki, yeni bir \u00fcr\u00fcn lansman\u0131 yapt\u0131n\u0131z ve sosyal medyadaki tepkileri anl\u0131k olarak takip etmek istiyorsunuz. Veya rakiplerinizin belirli anahtar kelimeler etraf\u0131ndaki etkile\u015fimlerini izlemek istiyorsunuz. \u00c7o\u011fu sosyal medya platformu (Twitter, Facebook, Instagram vb. - eri\u015fim kurallar\u0131 de\u011fi\u015febilir), geli\u015ftiriciler i\u00e7in API'ler sunar. Bu API'ler arac\u0131l\u0131\u011f\u0131yla, belirli anahtar kelimelerle ilgili g\u00f6nderileri, kullan\u0131c\u0131 profillerini, etkile\u015fim say\u0131lar\u0131n\u0131 (be\u011feniler, yorumlar, payla\u015f\u0131mlar) ve hatta g\u00f6nderi metinlerinin dilini veya duygu analizini (e\u011fer API bu \u00f6zelli\u011fi sa\u011fl\u0131yorsa) \u00e7ekebilirsiniz.<\/p>\n<h3>Vaka Analizi: \u00dcr\u00fcn Lansman\u0131 Sonras\u0131 Twitter Duyarl\u0131l\u0131k Analizi (Hipotez)<\/h3>\n<p>Yeni bir ak\u0131ll\u0131 telefon \u00e7\u0131kard\u0131\u011f\u0131n\u0131z\u0131 varsayal\u0131m. Pazarlama ekibi, lansman sonras\u0131 \u00fcr\u00fcn hakk\u0131nda konu\u015fulanlar\u0131 ve genel duyarl\u0131l\u0131\u011f\u0131 (olumlu\/olumsuz) Power BI dashboard'lar\u0131nda g\u00f6rmek istiyor.<\/p>\n<ol>\n<li>\n            <strong>API Se\u00e7imi ve Kimlik Do\u011frulama:<\/strong><\/p>\n<p>Twitter API'si (veya benzeri bir platformun API'si) se\u00e7ilir. Bu t\u00fcr API'ler genellikle <a href=\"https:\/\/developer.twitter.com\/en\/docs\" target=\"_blank\">API Anahtarlar\u0131 (API Keys)<\/a> ve Eri\u015fim Token'lar\u0131 (Access Tokens) gibi kimlik do\u011frulama mekanizmalar\u0131 gerektirir. Bu kimlik bilgileri, API isteklerinizin g\u00fcvenli\u011fini sa\u011flamak ve kimli\u011finizi do\u011frulamak i\u00e7in kullan\u0131l\u0131r. Power BI'da \"Web\" ba\u011flay\u0131c\u0131s\u0131n\u0131 kullan\u0131rken, bu kimlik bilgilerini HTTP ba\u015fl\u0131klar\u0131nda (Headers) veya URL parametreleri olarak g\u00f6ndermeniz gerekebilir. \u00d6rne\u011fin:<\/p>\n<pre><code>\n\/\/ HTTP Ba\u015fl\u0131\u011f\u0131na API Anahtar\u0131 Ekleme \u00d6rne\u011fi (Power Query M dili)\nlet\n    Url = \"https:\/\/api.twitter.com\/2\/tweets\/search\/recent?query=yeni_telefon_modeli\",\n    Headers = [\n        #\"Authorization\" = \"Bearer YOUR_BEARER_TOKEN\",\n        #\"Content-Type\" = \"application\/json\"\n    ],\n    Source = Web.Contents(Url, [Headers=Headers]),\n    JsonContent = Json.Document(Source)\nin\n    JsonContent\n            <\/pre>\n<p><\/code><\/p>\n<p><strong>\u00d6nemli Not:<\/strong> Ger\u00e7ek API anahtarlar\u0131n\u0131z\u0131 asla a\u00e7\u0131k metin olarak veya herkese a\u00e7\u0131k bir \u015fekilde payla\u015fmay\u0131n. Power BI Desktop'ta parametreler veya di\u011fer g\u00fcvenli y\u00f6ntemlerle y\u00f6netilmelidir.<\/p>\n<\/li>\n<li>\n            <strong>Veri \u00c7ekme ve D\u00f6n\u00fc\u015ft\u00fcrme:<\/strong><\/p>\n<p>Belirli anahtar kelimeler (\u00f6rn: \"#yeni_telefon_modeli\", \"ak\u0131ll\u0131 telefon\") ile ilgili tweet'leri \u00e7ekmek i\u00e7in API sorgular\u0131 olu\u015fturulur. API, tweet'leri, yazar bilgilerini, etkile\u015fim metriklerini (retweet say\u0131s\u0131, be\u011feni say\u0131s\u0131) ve hatta baz\u0131 durumlarda temel duyarl\u0131l\u0131k analizini i\u00e7eren JSON nesneleri d\u00f6nd\u00fcrecektir. Power Query D\u00fczenleyicisi'nde bu i\u00e7 i\u00e7e ge\u00e7mi\u015f JSON yap\u0131s\u0131, ad\u0131m ad\u0131m geni\u015fletilir ve normalle\u015ftirilmi\u015f tablolara d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr. \u00d6rne\u011fin, <code>data<\/code> listesi geni\u015fletilir, ard\u0131ndan <code>author<\/code> veya <code>public_metrics<\/code> gibi alt kay\u0131tlar ayr\u0131 s\u00fctunlara a\u00e7\u0131l\u0131r.<\/p>\n<table class=\"data-example\">\n<thead>\n<tr>\n<th>Tweet ID<\/th>\n<th>Kullan\u0131c\u0131 Ad\u0131<\/th>\n<th>Tweet Metni<\/th>\n<th>Be\u011feni Say\u0131s\u0131<\/th>\n<th>Retweet Say\u0131s\u0131<\/th>\n<th>Tarih<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>12345<\/td>\n<td>@teknoloji_sever<\/td>\n<td>Yeni telefon modeli harika olmu\u015f!<\/td>\n<td>150<\/td>\n<td>25<\/td>\n<td>2023-10-26<\/td>\n<\/tr>\n<tr>\n<td>12346<\/td>\n<td>@elektronik_fan<\/td>\n<td>Kamera kalitesi beklentimin alt\u0131nda kald\u0131.<\/td>\n<td>50<\/td>\n<td>5<\/td>\n<td>2023-10-26<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n            <strong>Duyarl\u0131l\u0131k Analizi ve G\u00f6rselle\u015ftirme:<\/strong><\/p>\n<p>API do\u011frudan duyarl\u0131l\u0131k verisi sa\u011flam\u0131yorsa, Power BI'da veya Power Query'de metin analizi i\u00e7in \u00f6zel M fonksiyonlar\u0131 yaz\u0131labilir veya Azure Cognitive Services gibi harici servisler entegre edilebilir. Her tweet'e bir duyarl\u0131l\u0131k puan\u0131 (olumlu, n\u00f6tr, olumsuz) atan\u0131r. Ard\u0131ndan, Power BI'da \u015fu t\u00fcr dashboard'lar olu\u015fturulur:<\/p>\n<ul>\n<li><strong>Zaman \u00c7izelgesi Grafi\u011fi:<\/strong> G\u00fcnl\u00fck olarak olumlu, n\u00f6tr ve olumsuz tweet'lerin da\u011f\u0131l\u0131m\u0131n\u0131 g\u00f6sterir.<\/li>\n<li><strong>Anahtar Kelime Bulutu:<\/strong> \u00dcr\u00fcnle ilgili en s\u0131k kullan\u0131lan pozitif ve negatif kelimeleri g\u00f6sterir.<\/li>\n<li><strong>En \u00c7ok Etkile\u015fim Alan G\u00f6nderiler:<\/strong> Hangi tweet'lerin en \u00e7ok be\u011feni veya retweet ald\u0131\u011f\u0131n\u0131 listeler.<\/li>\n<li><strong>Genel Duyarl\u0131l\u0131k Skoru:<\/strong> \u00dcr\u00fcne y\u00f6nelik genel kamuoyu duyarl\u0131l\u0131\u011f\u0131n\u0131n bir kartta g\u00f6sterimi.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<div class=\"expert-tip\">\n        Uzman \u0130pucu: Sosyal medya API'leri genellikle karma\u015f\u0131k kimlik do\u011frulama ak\u0131\u015flar\u0131na (\u00f6rn. OAuth 2.0) sahiptir. Power BI'\u0131n yerle\u015fik Web ba\u011flay\u0131c\u0131s\u0131 her zaman bu ak\u0131\u015flar\u0131 do\u011frudan desteklemeyebilir. Bu gibi durumlarda, Power Query'de custom connector (\u00f6zel ba\u011flay\u0131c\u0131) geli\u015ftirmek veya Python\/R gibi dillerle ara katman olu\u015fturup veriyi ara bir veritaban\u0131na aktarmak daha pratik olabilir.\n    <\/div>\n<p>Bu senaryo, REST API'lerin web'den ham veriyi \u00e7ekme ve Power BI ile anlaml\u0131 i\u015f zekas\u0131 ara\u00e7lar\u0131na d\u00f6n\u00fc\u015ft\u00fcrme g\u00fcc\u00fcn\u00fc g\u00f6stermektedir. \u015eirketler, bu sayede pazar dinamiklerine daha h\u0131zl\u0131 yan\u0131t verebilir, m\u00fc\u015fteri geri bildirimlerini proaktif olarak y\u00f6netebilir ve veriye dayal\u0131 stratejik kararlar alabilirler. Unutmay\u0131n, API'lerin g\u00fcc\u00fc sadece veriye eri\u015fmekle kalmaz, ayn\u0131 zamanda bu veriyi otomatik, g\u00fcncel ve eyleme ge\u00e7irilebilir hale getirme yetene\u011finde yatar.<\/p>\n<h2>\u0130leri D\u00fczey API Entegrasyon Teknikleri ve Optimizasyon \u0130pu\u00e7lar\u0131<\/h2>\n<p>Power BI ve REST API entegrasyonunda temel ad\u0131mlar\u0131 \u00f6\u011frendikten sonra, daha karma\u015f\u0131k senaryolarla ba\u015fa \u00e7\u0131kmak ve performans\u0131n\u0131z\u0131 art\u0131rmak i\u00e7in baz\u0131 ileri d\u00fczey tekniklere ve optimizasyon ipu\u00e7lar\u0131na ihtiyac\u0131n\u0131z olabilir. Bu b\u00f6l\u00fcm, deneyimli kullan\u0131c\u0131lar\u0131n daha verimli ve g\u00fcvenilir \u00e7\u00f6z\u00fcmler olu\u015fturmas\u0131na yard\u0131mc\u0131 olacak bilgiler sunmaktad\u0131r.<\/p>\n<h3>1. Hata Y\u00f6netimi ve Sa\u011flaml\u0131k (Robustness)<\/h3>\n<p>API'ler her zaman bekledi\u011fimiz gibi \u00e7al\u0131\u015fmayabilir. A\u011f kesintileri, API limitlerinin a\u015f\u0131lmas\u0131, sunucu hatalar\u0131 veya ge\u00e7ersiz parametreler nedeniyle istekler ba\u015far\u0131s\u0131z olabilir. Power Query'nin M dilinde <code>try...otherwise<\/code> yap\u0131s\u0131n\u0131 kullanarak bu hatalar\u0131 zarif bir \u015fekilde y\u00f6netebiliriz. Bu, veri yenileme s\u00fcrecinizin kesintiye u\u011framamas\u0131n\u0131 sa\u011flar ve sorunlu verileri tespit etmenize yard\u0131mc\u0131 olur.<\/p>\n<pre><code>\n\/\/ Hata Y\u00f6netimi \u0130\u00e7in try...otherwise Kullan\u0131m\u0131\nlet\n    KaynagiAl = () =>\n        try\n            Web.Contents(\"https:\/\/api.example.com\/veri?param=gecersiz\"), \/\/ Hata verebilecek bir URL\n            [Timeout=#duration(0,0,0,30)] \/\/ 30 saniye zaman a\u015f\u0131m\u0131\n        otherwise\n            null, \/\/ Hata durumunda null d\u00f6nd\u00fcr\n    Sonuc = KaynagiAl()\nin\n    if Sonuc = null then \"Hata Olu\u015ftu veya Zaman A\u015f\u0131m\u0131\" else Json.Document(Sonuc)\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>Web.Contents<\/code> \u00e7a\u011fr\u0131s\u0131 ba\u015far\u0131s\u0131z olursa, Power BI hata f\u0131rlatmak yerine \"null\" de\u011feri d\u00f6nd\u00fcr\u00fcr ve siz bu durumu kontrol edebilirsiniz. Zaman a\u015f\u0131m\u0131 gibi parametreler de API \u00e7a\u011fr\u0131lar\u0131n\u0131z\u0131n daha diren\u00e7li olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>2. API \u0130stek Limitlerinin A\u015f\u0131lmamas\u0131 ve Gecikmeler<\/h3>\n<p>Bir\u00e7ok API, a\u015f\u0131r\u0131 y\u00fcklenmeyi \u00f6nlemek i\u00e7in istek limitleri (rate limits) uygular. Belirli bir zaman diliminde (\u00f6rn. dakikada 60 istek) bu limiti a\u015farsan\u0131z, API iste\u011finizi reddedecektir. Bu durumu y\u00f6netmek i\u00e7in, ard\u0131\u015f\u0131k API \u00e7a\u011fr\u0131lar\u0131 aras\u0131na bilin\u00e7li gecikmeler ekleyebilirsiniz. Power Query'de do\u011frudan bir \"uyku\" fonksiyonu olmasa da, karma\u015f\u0131k senaryolarda \u00f6zel fonksiyonlarla veya ara katmanlarla bu durum y\u00f6netilebilir. Power BI Service'da yenileme s\u0131kl\u0131\u011f\u0131n\u0131 ayarlayarak da bu limitleri g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131s\u0131n\u0131z.<\/p>\n<h3>3. Parametrik API \u00c7a\u011fr\u0131lar\u0131 ile Dinamik Veri Al\u0131m\u0131<\/h3>\n<p>S\u0131k\u00e7a, API'den farkl\u0131 parametrelerle (\u00f6rne\u011fin, farkl\u0131 tarihler, \u015fehirler veya kullan\u0131c\u0131 kimlikleri i\u00e7in) veri \u00e7ekmek isteyebilirsiniz. Power BI'da parametreler (Parameters) olu\u015fturarak ve bunlar\u0131 Power Query sorgular\u0131n\u0131zda kullanarak dinamik API \u00e7a\u011fr\u0131lar\u0131 yapabilirsiniz. Bu, bir defa sorgu olu\u015fturup farkl\u0131 de\u011ferlerle tekrar tekrar kullanman\u0131za olanak tan\u0131r.<\/p>\n<ol>\n<li>\"Giri\u015fleri Y\u00f6net\" (Manage Parameters) alt\u0131ndan yeni bir parametre olu\u015fturun (\u00f6rn: \"SehirAdi\" tipinde Metin).<\/li>\n<li>Sorgunuzda URL'yi parametre ile birle\u015ftirin:\n<pre><code>\nlet\n    Sehir = SehirAdi, \/\/ Parametre de\u011ferini al\n    Source = Web.Contents(\"https:\/\/api.example.com\/hava-durumu?sehir=\" & Sehir),\n    ...\nin\n    ...\n            <\/pre>\n<p><\/code>\n        <\/li>\n<\/ol>\n<p>Bu sayede rapor kullan\u0131c\u0131lar\u0131, bir dilimleyici (slicer) arac\u0131l\u0131\u011f\u0131yla \u015fehir se\u00e7ti\u011finde, Power BI otomatik olarak ilgili \u015fehre ait verileri API'den \u00e7ekebilir (e\u011fer rapor do\u011frudan Power BI Service'a ba\u011fl\u0131 ve gerekli ayarlamalar yap\u0131lm\u0131\u015fsa).<\/p>\n<h3>4. \u00d6zel Power Query Fonksiyonlar\u0131 Olu\u015fturma<\/h3>\n<p>Tekrar eden API \u00e7a\u011fr\u0131lar\u0131 veya veri d\u00f6n\u00fc\u015f\u00fcm ad\u0131mlar\u0131 varsa, bunlar\u0131 \u00f6zel bir Power Query fonksiyonu (Custom Function) olarak tan\u0131mlayabilirsiniz. Bu fonksiyonlar, kod tekrar\u0131n\u0131 azalt\u0131r, sorgular\u0131n\u0131z\u0131 daha mod\u00fcler ve okunabilir hale getirir. \u00d6rne\u011fin, belirli bir API'den tek bir ID ile veri \u00e7eken bir fonksiyon yaz\u0131p, bu fonksiyonu bir ID listesi \u00fczerinde \u00e7a\u011f\u0131rarak birden fazla veri setini kolayca alabilirsiniz.<\/p>\n<pre><code>\n\/\/ \u00d6zel Power Query Fonksiyonu \u00d6rne\u011fi\n(id as number) as table =>\nlet\n    Url = \"https:\/\/jsonplaceholder.typicode.com\/posts\/\" & Text.From(id),\n    Source = Web.Contents(Url),\n    JsonContent = Json.Document(Source),\n    #\"Converted to Table\" = Table.FromRecords({JsonContent}), \/\/ Tek kayd\u0131 tabloya d\u00f6n\u00fc\u015ft\u00fcr\n    #\"Expanded Column1\" = Table.ExpandRecordColumn(#\"Converted to Table\", \"Column1\", {\"userId\", \"id\", \"title\", \"body\"}, {\"userId\", \"id\", \"title\", \"body\"})\nin\n    #\"Expanded Column1\"\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu fonksiyonu olu\u015fturduktan sonra, bir ID listesi \u00fczerinde \"\u0130\u015flev \u00c7a\u011f\u0131r\" (Invoke Custom Function) \u00f6zelli\u011fini kullanarak t\u00fcm verileri \u00e7ekebilirsiniz.<\/p>\n<h3>5. G\u00fcvenlik ve Kimlik Bilgilerinin Y\u00f6netimi<\/h3>\n<p>API anahtarlar\u0131 veya di\u011fer kimlik do\u011frulama bilgileri kesinlikle do\u011frudan Power Query kodunda a\u00e7\u0131k metin olarak saklanmamal\u0131d\u0131r. Power BI, veri kaynaklar\u0131 i\u00e7in kimlik bilgilerini g\u00fcvenli bir \u015fekilde depolama se\u00e7enekleri sunar (\u00f6rn. Temel Kimlik Do\u011frulama, Web API anahtarlar\u0131 i\u00e7in \"API Anahtar\u0131\" se\u00e7ene\u011fi). Ayr\u0131ca, Power BI Service'da veri a\u011f ge\u00e7itlerini (Data Gateways) kullanarak \u015firket i\u00e7i kaynaklara g\u00fcvenli eri\u015fim sa\u011flayabilir ve kimlik bilgilerini merkezi olarak y\u00f6netebilirsiniz.<\/p>\n<div class=\"expert-tip\">\n        Uzman \u0130pucu: Power BI Service'da Power Query parametreleri ile hassas bilgileri y\u00f6netmek zor olabilir. Daha g\u00fcvenli ve \u00f6l\u00e7eklenebilir bir yakla\u015f\u0131m i\u00e7in Azure Key Vault gibi bir s\u0131r y\u00f6netimi \u00e7\u00f6z\u00fcm\u00fc kullanmay\u0131 ve bu s\u0131rlar\u0131 Power BI raporunuza Power Automate veya Azure Functions gibi bir ara katman \u00fczerinden aktarmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz.\n    <\/div>\n<p>Bu ileri d\u00fczey teknikler, Power BI ile REST API entegrasyonlar\u0131n\u0131z\u0131 daha verimli, g\u00fcvenilir ve g\u00fcvenli hale getirecektir. Veri hacmi artt\u0131k\u00e7a veya API'lerin karma\u015f\u0131kl\u0131\u011f\u0131 y\u00fckseldik\u00e7e, bu teknikler projenizin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahip olacakt\u0131r. Unutmay\u0131n, iyi planlanm\u0131\u015f bir API entegrasyonu, sadece veri \u00e7ekmekle kalmaz, ayn\u0131 zamanda gelecekteki bak\u0131m ve geni\u015fletme s\u00fcre\u00e7lerini de kolayla\u015ft\u0131r\u0131r. Bir sonraki b\u00f6l\u00fcmde, yayg\u0131n zorluklar\u0131 ve \u00e7\u00f6z\u00fcm yollar\u0131n\u0131 ele alaca\u011f\u0131z.<\/p>\n<h2>Power BI ve REST API Kullan\u0131m\u0131nda Kar\u015f\u0131la\u015f\u0131lan Zorluklar ve \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>Power BI ve REST API entegrasyonu, web verilerini etkili bir \u015fekilde g\u00f6rselle\u015ftirmek i\u00e7in g\u00fc\u00e7l\u00fc bir yol sunsa da, s\u00fcre\u00e7 boyunca baz\u0131 yayg\u0131n zorluklarla kar\u015f\u0131la\u015fmak m\u00fcmk\u00fcnd\u00fcr. Bu b\u00f6l\u00fcmde, bu zorluklar\u0131 ve bunlara y\u00f6nelik pratik \u00e7\u00f6z\u00fcm yollar\u0131n\u0131 ele alaca\u011f\u0131z.<\/p>\n<h3>1. Kimlik Do\u011frulama ve Yetkilendirme Karma\u015f\u0131kl\u0131\u011f\u0131<\/h3>\n<p><strong>Zorluk:<\/strong> Bir\u00e7ok REST API, verilere eri\u015fim i\u00e7in kimlik do\u011frulama (Authentication) ve yetkilendirme (Authorization) gerektirir. Bu genellikle API anahtarlar\u0131, Bearer Token'lar, OAuth 2.0 veya di\u011fer token tabanl\u0131 sistemler arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r. Power BI'\u0131n yerle\u015fik \"Web\" ba\u011flay\u0131c\u0131s\u0131 her kimlik do\u011frulama y\u00f6ntemini do\u011frudan desteklemeyebilir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong><\/p>\n<ul>\n<li><strong>API Anahtarlar\u0131:<\/strong> Power BI'\u0131n \"Web\" ba\u011flay\u0131c\u0131s\u0131nda, URL'ye parametre olarak ekleyebilir veya \"HTTP \u0130stek Ba\u015fl\u0131\u011f\u0131\" (HTTP request header) se\u00e7ene\u011fiyle \u00f6zel bir ba\u015fl\u0131k olarak g\u00f6nderebilirsiniz (<code>Authorization: Bearer <Your_Token><\/code> veya <code>X-API-Key: <Your_API_Key><\/code> gibi).<\/li>\n<li><strong>OAuth 2.0:<\/strong> Bu genellikle daha karma\u015f\u0131k bir ak\u0131\u015ft\u0131r. Power BI do\u011frudan t\u00fcm OAuth ak\u0131\u015flar\u0131n\u0131 desteklemez. Bu durumda, ya Power Query i\u00e7in \u00f6zel bir ba\u011flay\u0131c\u0131 (Custom Connector) geli\u015ftirmeniz ya da Python\/Azure Functions gibi bir ara katman kullanarak token'\u0131 al\u0131p Power BI'a aktarman\u0131z gerekebilir.<\/li>\n<li><strong>Veri Kayna\u011f\u0131 Kimlik Bilgileri:<\/strong> Power BI Desktop'ta veriyi al\u0131rken, API anahtar\u0131n\u0131z\u0131 uygun kimlik do\u011frulama t\u00fcr\u00fc (\u00f6rne\u011fin, Temel kimlik do\u011frulamada kullan\u0131c\u0131 ad\u0131\/\u015fifre veya Web API'sinde API Anahtar\u0131) ile girin. Bu bilgiler g\u00fcvenli bir \u015fekilde saklanacakt\u0131r.<\/li>\n<\/ul>\n<h3>2. \u0130\u00e7 \u0130\u00e7e JSON\/XML Yap\u0131lar\u0131n\u0131n Normalle\u015ftirilmesi<\/h3>\n<p><strong>Zorluk:<\/strong> API'lerden gelen veriler, \u00f6zellikle JSON format\u0131nda, s\u0131kl\u0131kla i\u00e7 i\u00e7e ge\u00e7mi\u015f nesneler (records) ve diziler (lists) i\u00e7erir. Bu yap\u0131lar, do\u011frudan bir tabloya d\u00f6n\u00fc\u015fmedi\u011fi i\u00e7in Power BI'da g\u00f6rselle\u015ftirmeden \u00f6nce \"d\u00fczle\u015ftirilmesi\" (flattening) gerekir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> Power Query D\u00fczenleyicisi'nde \"Geni\u015flet\" (Expand) i\u015flemini kullan\u0131n. Liste s\u00fctunlar\u0131n\u0131 geni\u015fletirken \"Yeni Sat\u0131rlara Geni\u015flet\" (Expand to New Rows) se\u00e7ene\u011fiyle her \u00f6\u011feyi ayr\u0131 bir sat\u0131ra alabilir, kay\u0131t s\u00fctunlar\u0131n\u0131 geni\u015fletirken ise kay\u0131t i\u00e7indeki alanlar\u0131 ayr\u0131 s\u00fctunlar olarak ekleyebilirsiniz. Bu ad\u0131mlar\u0131 tekrar tekrar uygulayarak karma\u015f\u0131k yap\u0131lar\u0131 ad\u0131m ad\u0131m normal bir tablo format\u0131na d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz.<\/p>\n<h3>3. Sayfalama (Pagination) ile B\u00fcy\u00fck Veri Setlerini Y\u00f6netme<\/h3>\n<p><strong>Zorluk:<\/strong> API'ler, performans\u0131 art\u0131rmak ve veri y\u00fck\u00fcn\u00fc azaltmak i\u00e7in genellikle b\u00fcy\u00fck veri setlerini \"sayfalar\" halinde d\u00f6nd\u00fcr\u00fcr. Yani, tek bir istekte t\u00fcm veriyi de\u011fil, belirli bir limit kadar (\u00f6rn: ilk 100 kay\u0131t) veri al\u0131rs\u0131n\u0131z ve sonraki sayfalar\u0131 almak i\u00e7in ek istekler yapman\u0131z gerekir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> Power Query M dilinde \u00f6zel bir fonksiyon olu\u015fturarak sayfalama mant\u0131\u011f\u0131n\u0131 uygulayabilirsiniz. Bu fonksiyon, API'ye tekrar tekrar istek g\u00f6nderir ve her sayfadan gelen veriyi birle\u015ftirir. Genellikle bir <code>NextPageUrl<\/code> veya <code>offset\/limit<\/code> parametreleri kullan\u0131l\u0131r. Power BI'da bir <code>List.Generate<\/code> veya yinelemeli (recursive) bir fonksiyon ile bu s\u00fcre\u00e7 otomatikle\u015ftirilebilir.<\/p>\n<pre><code>\n\/\/ Basit bir sayfalama \u00f6rne\u011fi (ger\u00e7ek API'ye g\u00f6re uyarlanmal\u0131d\u0131r)\nlet\n    GetPage = (pageNum as number) as table =>\n        let\n            Source = Web.Contents(\"https:\/\/api.example.com\/data?page=\" & Text.From(pageNum) & \"&limit=100\"),\n            JsonContent = Json.Document(Source),\n            Records = JsonContent[data]?, \/\/ \"data\" alan\u0131 alt\u0131nda verilerin oldu\u011funu varsayal\u0131m\n            Table = Table.FromList(Records, ...), \/\/ Kay\u0131tlar\u0131 tabloya d\u00f6n\u00fc\u015ft\u00fcr\n            Expanded = Table.ExpandRecordColumn(Table, ...),\n            Result = if Table.IsEmpty(Table) then null else Expanded\n        in\n            Result,\n    \/\/ T\u00fcm sayfalar\u0131 almak i\u00e7in List.Generate kullan\n    AllPages = List.Generate(\n        () => [Page = 1, Data = GetPage(1)],\n        each [Data] <> null,\n        each [Page = [Page] + 1, Data = GetPage([Page])],\n        each [Data]\n    ),\n    CombinedPages = Table.Combine(AllPages)\nin\n    CombinedPages\n    <\/pre>\n<p><\/code><\/p>\n<h3>4. API \u0130stek Limitleri ve Performans Sorunlar\u0131<\/h3>\n<p><strong>Zorluk:<\/strong> API'lerin istek limitleri veya yava\u015f yan\u0131t s\u00fcreleri, b\u00fcy\u00fck veri k\u00fcmelerini \u00e7ekerken veya s\u0131k yenileme yaparken performans\u0131 olumsuz etkileyebilir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong><\/p>\n<ul>\n<li><strong>Incremental Refresh (Art\u0131ml\u0131 Yenileme):<\/strong> Power BI Premium veya PPU lisans\u0131na sahipseniz, sadece yeni veya g\u00fcncellenmi\u015f verileri \u00e7eken art\u0131ml\u0131 yenileme politikalar\u0131 tan\u0131mlayarak API istek say\u0131s\u0131n\u0131 ve yenileme s\u00fcresini \u00f6nemli \u00f6l\u00e7\u00fcde azaltabilirsiniz.<\/li>\n<li><strong>Veri \u00d6nbellekleme:<\/strong> Veriyi do\u011frudan API'den \u00e7ekmek yerine, \u00f6ncelikle bir ara veritaban\u0131na (Azure SQL Database, Data Lake) \u00e7ekip, Power BI'\u0131 bu veritaban\u0131na ba\u011flamak, API'ye yap\u0131lan istekleri azaltabilir ve daha iyi performans sa\u011flayabilir.<\/li>\n<li><strong>Zaman Planl\u0131 Yenileme:<\/strong> API limitlerini a\u015fmamak i\u00e7in Power BI Service'da veri yenileme s\u0131kl\u0131\u011f\u0131n\u0131 dikkatlice ayarlay\u0131n.<\/li>\n<\/ul>\n<h3>5. Mobil Uyumluluk ve Rapor Tasar\u0131m\u0131<\/h3>\n<p><strong>Zorluk:<\/strong> Olu\u015fturulan dashboard'lar farkl\u0131 ekran boyutlar\u0131nda (masa\u00fcst\u00fc, tablet, mobil) d\u00fczg\u00fcn g\u00f6r\u00fcnmeyebilir ve kullan\u0131labilirlik sorunlar\u0131 ya\u015fatabilir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> Power BI'\u0131n \"Mobil D\u00fczen\" (Mobile Layout) \u00f6zelli\u011fini kullanarak raporlar\u0131n\u0131z i\u00e7in \u00f6zel mobil g\u00f6r\u00fcn\u00fcmler tasarlayabilirsiniz. Bu, raporunuzun mobil cihazlarda en iyi \u015fekilde g\u00f6r\u00fcnmesini ve kullan\u0131lmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, genel rapor tasar\u0131m\u0131nda, g\u00f6rsellerin esnekli\u011fini korumak ve a\u015f\u0131r\u0131 karma\u015f\u0131kl\u0131ktan ka\u00e7\u0131nmak mobil uyumluluk i\u00e7in \u00f6nemlidir.<\/p>\n<p>HTML ve CSS tabanl\u0131 web sitelerinde, bir web sayfas\u0131n\u0131n farkl\u0131 cihazlarda uyumlu g\u00f6r\u00fcnmesini sa\u011flayan ana tekniklerden biri <strong>CSS Media Queries<\/strong> kullanmakt\u0131r. \u00d6rne\u011fin, bir dashboard'u web'e g\u00f6md\u00fc\u011f\u00fcn\u00fczde veya genel bir web uygulamas\u0131 i\u00e7in \u00e7\u0131kt\u0131 al\u0131rken, CSS Media Query'ler devreye girer. Bu CSS kurallar\u0131, ekran geni\u015fli\u011fi, y\u00fcksekli\u011fi, cihaz\u0131n y\u00f6n\u00fc gibi \u00f6zelliklere g\u00f6re stil de\u011fi\u015fiklikleri yapman\u0131z\u0131 sa\u011flar. Power BI do\u011frudan CSS \u00fcretmese de, raporlar\u0131n\u0131z\u0131 tasarlarken bu prensibi g\u00f6z \u00f6n\u00fcnde bulundurarak g\u00f6rsellerinizi esnek ve yeniden boyutland\u0131r\u0131labilir yapman\u0131z \u00f6nemlidir.<\/p>\n<pre><code class=\"language-css\">\n\/* Mobil cihazlar i\u00e7in \u00f6rnek bir CSS Media Query *\/\n@media screen and (max-width: 768px) {\n  .dashboard-card {\n    width: 100% !important; \/* Kartlar\u0131 tam geni\u015fli\u011fe getir *\/\n    float: none !important;\n  }\n  .chart-area {\n    height: 200px !important; \/* Grafi\u011fin y\u00fcksekli\u011fini ayarla *\/\n  }\n}\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, ekran geni\u015fli\u011fi 768 pikselin alt\u0131na d\u00fc\u015ft\u00fc\u011f\u00fcnde, belirli <code>.dashboard-card<\/code> ve <code>.chart-area<\/code> s\u0131n\u0131flar\u0131na sahip elementlerin stilleri mobil uyumlu hale getirilir. Power BI raporlar\u0131n\u0131z\u0131n mobil g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc tasarlarken, bu esnekli\u011fi sa\u011flayan ve \"Mobil D\u00fczen\" arac\u0131yla optimize edilmi\u015f bir tasar\u0131m anlay\u0131\u015f\u0131n\u0131 benimsemek faydal\u0131 olacakt\u0131r.<\/p>\n<p>Bu zorluklar\u0131n \u00fcstesinden gelmek, Power BI ve REST API entegrasyonu projelerinizin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir. Do\u011fru ara\u00e7lar\u0131 ve teknikleri kullanarak, en karma\u015f\u0131k web verilerini bile sorunsuz bir \u015fekilde Power BI dashboard'lar\u0131n\u0131za ta\u015f\u0131yabilir ve de\u011ferli i\u00e7g\u00f6r\u00fcler elde edebilirsiniz.<\/p>\n<h2>Sonu\u00e7: Verilerle Konu\u015fan Dashboard'lar Yaratman\u0131n G\u00fcc\u00fc<\/h2>\n<p>Bu rehber boyunca, Power BI'\u0131n g\u00f6rselle\u015ftirme yetenekleri ile REST API'lerin esnekli\u011fini birle\u015ftirerek web verilerini nas\u0131l g\u00fc\u00e7l\u00fc ve eyleme d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilir dashboard'lara d\u00f6n\u00fc\u015ft\u00fcrebilece\u011fimizi detayl\u0131ca inceledik. Dijital d\u00fcnyan\u0131n sundu\u011fu u\u00e7suz bucaks\u0131z veri kaynaklar\u0131na, manuel y\u00f6ntemlerin getirdi\u011fi k\u0131s\u0131tlamalardan s\u0131yr\u0131larak, otomatik ve g\u00fcncel bir \u015fekilde eri\u015fmenin kap\u0131lar\u0131n\u0131 aralad\u0131k. Temel API kavramlar\u0131ndan, Power Query ile veri d\u00f6n\u00fc\u015f\u00fcmlerine, ger\u00e7ek d\u00fcnya senaryolar\u0131ndan ileri d\u00fczey optimizasyon tekniklerine kadar pek \u00e7ok konuya de\u011findik.<\/p>\n<p>Art\u0131k biliyorsunuz ki, web \u00fczerindeki ham veriler sadece say\u0131lar ve metinlerden ibaret de\u011fildir; onlar, do\u011fru ara\u00e7larla i\u015flendi\u011finde i\u015fletmeniz i\u00e7in stratejik avantaj sa\u011flayacak hikayeler, e\u011filimler ve \u00f6ng\u00f6r\u00fcler bar\u0131nd\u0131r\u0131r. Power BI ve REST API'lerin birle\u015fimi, bu hikayeleri ke\u015ffetmek ve onlar\u0131 herkesin anlayabilece\u011fi g\u00f6rsel bir dile \u00e7evirmek i\u00e7in size e\u015fsiz bir g\u00fc\u00e7 vermektedir. Bu entegrasyon sayesinde:<\/p>\n<ul>\n<li>Veri toplama s\u00fcre\u00e7lerinizi otomatikle\u015ftirebilir, zaman ve i\u015f g\u00fcc\u00fc tasarrufu sa\u011flayabilirsiniz.<\/li>\n<li>Dashboard'lar\u0131n\u0131z\u0131n her zaman en g\u00fcncel verilerle beslenmesini garanti alt\u0131na alabilirsiniz.<\/li>\n<li>Karma\u015f\u0131k web verilerini kolayca anla\u015f\u0131l\u0131r ve etkile\u015fimli g\u00f6rselle\u015ftirmelere d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz.<\/li>\n<li>H\u0131zl\u0131 ve veriye dayal\u0131 kararlar alarak rekabet avantaj\u0131 elde edebilirsiniz.<\/li>\n<\/ul>\n<p>Unutmay\u0131n, her API'nin kendine \u00f6zg\u00fc kurallar\u0131 ve kimlik do\u011frulama gereksinimleri olabilir. Bu nedenle, kullanmay\u0131 d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcn\u00fcz API'nin dok\u00fcmantasyonunu dikkatlice incelemek, ba\u015far\u0131l\u0131 bir entegrasyonun anahtar\u0131d\u0131r. \u00d6\u011frendi\u011finiz bu bilgilerle, kendi web verisi dashboard'lar\u0131n\u0131z\u0131 olu\u015fturmaya ba\u015flayabilir ve verilerin g\u00fcc\u00fcn\u00fc ke\u015ffetme yolculu\u011funuzda \u00f6nemli bir ad\u0131m atabilirsiniz. \u015eimdi s\u0131ra sizde: Hangi web verilerini analiz etmek istersiniz? Hangi sorulara cevap ar\u0131yorsunuz? Ba\u015flay\u0131n ve verilerle konu\u015fan dashboard'lar\u0131n\u0131zla fark yarat\u0131n!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<ol>\n<li>\n<h4>Power BI ile herhangi bir API'ye ba\u011flanabilir miyim?<\/h4>\n<p>Power BI'\u0131n yerle\u015fik \"Web\" ba\u011flay\u0131c\u0131s\u0131 ile \u00e7o\u011fu RESTful API'ye ba\u011flanabilirsiniz. Ancak, API'nin kimlik do\u011frulama (authentication) y\u00f6ntemi (\u00f6rn. OAuth 2.0 gibi karma\u015f\u0131k ak\u0131\u015flar) veya veri format\u0131 (JSON\/XML d\u0131\u015f\u0131nda) bazen do\u011frudan ba\u011flant\u0131 kurmay\u0131 zorla\u015ft\u0131rabilir. Bu durumlarda Power Query i\u00e7in \u00f6zel ba\u011flay\u0131c\u0131lar geli\u015ftirmeniz veya Python\/R gibi dillerle bir ara katman olu\u015fturarak veriyi Power BI'a aktarman\u0131z gerekebilir. API'nin herkese a\u00e7\u0131k olmas\u0131 veya do\u011fru kimlik bilgilerine sahip olman\u0131z esast\u0131r.<\/p>\n<\/li>\n<li>\n<h4>API \u00e7a\u011fr\u0131lar\u0131 i\u00e7in kodlama bilmek \u015fart m\u0131?<\/h4>\n<p>Temel API \u00e7a\u011fr\u0131lar\u0131 i\u00e7in (\u00f6zellikle GET istekleri), Power BI Desktop'\u0131n grafik aray\u00fcz\u00fcn\u00fc ve Power Query D\u00fczenleyicisi'ni kullanarak b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kod yazmadan ilerleyebilirsiniz. Power Query M dili, veri d\u00f6n\u00fc\u015f\u00fcmleri i\u00e7in kodlamaya benzer bir yap\u0131 sunsa da, genellikle g\u00f6rsel ad\u0131mlar\u0131 kullanarak bu kod otomatik olarak \u00fcretilir. Ancak, sayfalama (pagination) gibi ileri d\u00fczey senaryolar veya \u00e7ok karma\u015f\u0131k veri d\u00f6n\u00fc\u015f\u00fcmleri i\u00e7in M dilini anlamak ve kullanabilmek b\u00fcy\u00fck avantaj sa\u011flar.<\/p>\n<\/li>\n<li>\n<h4>Verilerimi ne s\u0131kl\u0131kla g\u00fcncelleyebilirim?<\/h4>\n<p>Power BI Desktop'ta verileri istedi\u011finiz zaman manuel olarak yenileyebilirsiniz. Power BI Service'a (\u00e7evrimi\u00e7i hizmet) yay\u0131nlad\u0131\u011f\u0131n\u0131zda, raporlar\u0131n\u0131z i\u00e7in zamanlanm\u0131\u015f yenilemeler ayarlayabilirsiniz. Free lisansla g\u00fcnl\u00fck yenileme limiti varken, Pro ve Premium lisanslarla bu s\u0131kl\u0131k artar (\u00f6rn. Pro ile g\u00fcnde 8 defa, Premium ile daha da s\u0131k). Ancak, API'nin kendi istek limitlerini (rate limits) a\u015fmamaya dikkat etmelisiniz; aksi takdirde API taraf\u0131nda engellenme ya\u015fayabilirsiniz.<\/p>\n<\/li>\n<li>\n<h4>API anahtarlar\u0131m\u0131 nas\u0131l g\u00fcvende tutar\u0131m?<\/h4>\n<p>API anahtarlar\u0131n\u0131z\u0131 veya di\u011fer hassas kimlik bilgilerini asla Power Query kodunda a\u00e7\u0131k metin olarak veya herkese a\u00e7\u0131k bir \u015fekilde payla\u015fmay\u0131n. Power BI Desktop'ta veri kayna\u011f\u0131 ayarlar\u0131nda, bu bilgileri g\u00fcvenli bir \u015fekilde saklaman\u0131z\u0131 sa\u011flayan se\u00e7enekler bulunur (\u00f6rn. \"Web API\" kimlik do\u011frulama t\u00fcr\u00fc). Power BI Service'da, bu kimlik bilgileri de g\u00fcvenli bir \u015fekilde depolan\u0131r. Daha b\u00fcy\u00fck ve kurumsal \u00e7\u00f6z\u00fcmlerde, Azure Key Vault gibi s\u0131r y\u00f6netimi servislerini kullanarak API anahtarlar\u0131n\u0131z\u0131 daha da g\u00fcvende tutabilirsiniz.<\/p>\n<\/li>\n<li>\n<h4>Power BI Desktop'ta veri y\u00fcklemesi yava\u015fsa ne yapmal\u0131y\u0131m?<\/h4>\n<p>Veri y\u00fcklemesinin yava\u015f olmas\u0131n\u0131n birka\u00e7 nedeni olabilir: API'nin yava\u015f yan\u0131t vermesi, \u00e7ekilen veri miktar\u0131n\u0131n \u00e7ok b\u00fcy\u00fck olmas\u0131, Power Query'deki karma\u015f\u0131k d\u00f6n\u00fc\u015f\u00fcm ad\u0131mlar\u0131 veya bilgisayar\u0131n\u0131z\u0131n donan\u0131msal yetersizli\u011fi. \u00c7\u00f6z\u00fcmler aras\u0131nda API \u00e7a\u011fr\u0131lar\u0131n\u0131 optimize etmek (sadece gerekli alanlar\u0131 \u00e7ekmek), sayfalama kullanmak, gereksiz d\u00f6n\u00fc\u015f\u00fcm ad\u0131mlar\u0131ndan ka\u00e7\u0131nmak, sorgu katlamay\u0131 (query folding) destekleyen veri kaynaklar\u0131 kullanmak veya Power BI Desktop'\u0131 daha g\u00fc\u00e7l\u00fc bir donan\u0131mda \u00e7al\u0131\u015ft\u0131rmak yer al\u0131r. B\u00fcy\u00fck veri setleri i\u00e7in art\u0131ml\u0131 yenileme (incremental refresh) de ciddi performans iyile\u015ftirmeleri sa\u011flayabilir.<\/p>\n<\/li>\n<\/ol>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Dijital \u00e7a\u011fda veri, t\u0131pk\u0131 de\u011ferli bir maden gibi, do\u011fru i\u015flendi\u011finde i\u015fletmeler i\u00e7in paha bi\u00e7ilmez i\u00e7g\u00f6r\u00fcler sunar. Peki, internetin&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-34129","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Power BI ve REST API&#039;ler: Web Verilerini Etkileyici Dashboard&#039;lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi<\/title>\n<meta name=\"description\" content=\"Dijital \u00e7a\u011fda veri, t\u0131pk\u0131 de\u011ferli bir maden gibi, do\u011fru i\u015flendi\u011finde i\u015fletmeler i\u00e7in paha bi\u00e7ilmez i\u00e7g\u00f6r\u00fcler sunar. Peki, internetin u\u00e7suz bucaks\u0131z verilerini, geleneksel y\u00f6ntemlerle elde etmenin zorluklar\u0131ndan kurtularak, anla\u015f\u0131l\u0131r ve etkileyici dashboard&#039;lara nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrebiliriz? \u0130\u015fte tam da bu noktada Power BI&#039;\u0131n g\u00f6rsel g\u00fcc\u00fc ve REST API&#039;lerin esnekli\u011fi devreye giriyor. Bu rehberimizde, web \u00fczerindeki ham veriyi, birka\u00e7 basit ad\u0131mla nas\u0131l dinamik ve bilgilendirici panolara d\u00f6n\u00fc\u015ft\u00fcrebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. Haz\u0131r olun, verilerle konu\u015fan dashboard&#039;lar yaratmaya ba\u015fl\u0131yoruz!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Power BI ve REST API&#039;ler: Web Verilerini Etkileyici Dashboard&#039;lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi\" \/>\n<meta property=\"og:description\" content=\"Dijital \u00e7a\u011fda veri, t\u0131pk\u0131 de\u011ferli bir maden gibi, do\u011fru i\u015flendi\u011finde i\u015fletmeler i\u00e7in paha bi\u00e7ilmez i\u00e7g\u00f6r\u00fcler sunar. Peki, internetin u\u00e7suz bucaks\u0131z verilerini, geleneksel y\u00f6ntemlerle elde etmenin zorluklar\u0131ndan kurtularak, anla\u015f\u0131l\u0131r ve etkileyici dashboard&#039;lara nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrebiliriz? \u0130\u015fte tam da bu noktada Power BI&#039;\u0131n g\u00f6rsel g\u00fcc\u00fc ve REST API&#039;lerin esnekli\u011fi devreye giriyor. Bu rehberimizde, web \u00fczerindeki ham veriyi, birka\u00e7 basit ad\u0131mla nas\u0131l dinamik ve bilgilendirici panolara d\u00f6n\u00fc\u015ft\u00fcrebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. Haz\u0131r olun, verilerle konu\u015fan dashboard&#039;lar yaratmaya ba\u015fl\u0131yoruz!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-11T12:01:16+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"30 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Power BI ve REST API&#8217;ler: Web Verilerini Etkileyici Dashboard&#8217;lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi\",\"datePublished\":\"2025-11-11T12:01:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/\"},\"wordCount\":5745,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/\",\"name\":\"Power BI ve REST API'ler: Web Verilerini Etkileyici Dashboard'lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-11T12:01:16+00:00\",\"description\":\"Dijital \u00e7a\u011fda veri, t\u0131pk\u0131 de\u011ferli bir maden gibi, do\u011fru i\u015flendi\u011finde i\u015fletmeler i\u00e7in paha bi\u00e7ilmez i\u00e7g\u00f6r\u00fcler sunar. Peki, internetin u\u00e7suz bucaks\u0131z verilerini, geleneksel y\u00f6ntemlerle elde etmenin zorluklar\u0131ndan kurtularak, anla\u015f\u0131l\u0131r ve etkileyici dashboard'lara nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrebiliriz? \u0130\u015fte tam da bu noktada Power BI'\u0131n g\u00f6rsel g\u00fcc\u00fc ve REST API'lerin esnekli\u011fi devreye giriyor. Bu rehberimizde, web \u00fczerindeki ham veriyi, birka\u00e7 basit ad\u0131mla nas\u0131l dinamik ve bilgilendirici panolara d\u00f6n\u00fc\u015ft\u00fcrebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. Haz\u0131r olun, verilerle konu\u015fan dashboard'lar yaratmaya ba\u015fl\u0131yoruz!\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Power BI ve REST API&#8217;ler: Web Verilerini Etkileyici Dashboard&#8217;lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Power BI ve REST API'ler: Web Verilerini Etkileyici Dashboard'lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi","description":"Dijital \u00e7a\u011fda veri, t\u0131pk\u0131 de\u011ferli bir maden gibi, do\u011fru i\u015flendi\u011finde i\u015fletmeler i\u00e7in paha bi\u00e7ilmez i\u00e7g\u00f6r\u00fcler sunar. Peki, internetin u\u00e7suz bucaks\u0131z verilerini, geleneksel y\u00f6ntemlerle elde etmenin zorluklar\u0131ndan kurtularak, anla\u015f\u0131l\u0131r ve etkileyici dashboard'lara nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrebiliriz? \u0130\u015fte tam da bu noktada Power BI'\u0131n g\u00f6rsel g\u00fcc\u00fc ve REST API'lerin esnekli\u011fi devreye giriyor. Bu rehberimizde, web \u00fczerindeki ham veriyi, birka\u00e7 basit ad\u0131mla nas\u0131l dinamik ve bilgilendirici panolara d\u00f6n\u00fc\u015ft\u00fcrebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. Haz\u0131r olun, verilerle konu\u015fan dashboard'lar yaratmaya ba\u015fl\u0131yoruz!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Power BI ve REST API'ler: Web Verilerini Etkileyici Dashboard'lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi","og_description":"Dijital \u00e7a\u011fda veri, t\u0131pk\u0131 de\u011ferli bir maden gibi, do\u011fru i\u015flendi\u011finde i\u015fletmeler i\u00e7in paha bi\u00e7ilmez i\u00e7g\u00f6r\u00fcler sunar. Peki, internetin u\u00e7suz bucaks\u0131z verilerini, geleneksel y\u00f6ntemlerle elde etmenin zorluklar\u0131ndan kurtularak, anla\u015f\u0131l\u0131r ve etkileyici dashboard'lara nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrebiliriz? \u0130\u015fte tam da bu noktada Power BI'\u0131n g\u00f6rsel g\u00fcc\u00fc ve REST API'lerin esnekli\u011fi devreye giriyor. Bu rehberimizde, web \u00fczerindeki ham veriyi, birka\u00e7 basit ad\u0131mla nas\u0131l dinamik ve bilgilendirici panolara d\u00f6n\u00fc\u015ft\u00fcrebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. Haz\u0131r olun, verilerle konu\u015fan dashboard'lar yaratmaya ba\u015fl\u0131yoruz!","og_url":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-11T12:01:16+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"30 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Power BI ve REST API&#8217;ler: Web Verilerini Etkileyici Dashboard&#8217;lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi","datePublished":"2025-11-11T12:01:16+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/"},"wordCount":5745,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/","name":"Power BI ve REST API'ler: Web Verilerini Etkileyici Dashboard'lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-11T12:01:16+00:00","description":"Dijital \u00e7a\u011fda veri, t\u0131pk\u0131 de\u011ferli bir maden gibi, do\u011fru i\u015flendi\u011finde i\u015fletmeler i\u00e7in paha bi\u00e7ilmez i\u00e7g\u00f6r\u00fcler sunar. Peki, internetin u\u00e7suz bucaks\u0131z verilerini, geleneksel y\u00f6ntemlerle elde etmenin zorluklar\u0131ndan kurtularak, anla\u015f\u0131l\u0131r ve etkileyici dashboard'lara nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrebiliriz? \u0130\u015fte tam da bu noktada Power BI'\u0131n g\u00f6rsel g\u00fcc\u00fc ve REST API'lerin esnekli\u011fi devreye giriyor. Bu rehberimizde, web \u00fczerindeki ham veriyi, birka\u00e7 basit ad\u0131mla nas\u0131l dinamik ve bilgilendirici panolara d\u00f6n\u00fc\u015ft\u00fcrebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. Haz\u0131r olun, verilerle konu\u015fan dashboard'lar yaratmaya ba\u015fl\u0131yoruz!","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/power-bi-ve-rest-apiler-web-verilerini-etkileyici-dashboardlara-donusturme-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Power BI ve REST API&#8217;ler: Web Verilerini Etkileyici Dashboard&#8217;lara D\u00f6n\u00fc\u015ft\u00fcrme Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=34129"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34129\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}