[{"data":1,"prerenderedAt":565},["ShallowReactive",2],{"post-\u002Ftr\u002Fyapay-zeka-ile-api-gelistirirken-rest-kalitesini-korumak":3},{"page":4,"translation":444,"nav":446,"related":553,"random":558},{"id":5,"title":6,"body":7,"categories":416,"category":420,"date":421,"description":422,"draft":423,"extension":424,"image":425,"imageAlt":426,"kind":427,"lang":118,"meta":428,"navigation":429,"path":430,"publishedAt":420,"readingTime":431,"seo":432,"seoTitle":433,"slug":434,"stem":435,"tags":436,"translationKey":441,"type":442,"updated":420,"__hash__":443},"postsTr\u002Ftr\u002Fyapay-zeka-ile-api-gelistirirken-rest-kalitesini-korumak.md","Yapay Zekâ ile API Geliştirirken Kaliteyi Korumak",{"type":8,"value":9,"toc":406},"minimark",[10,43,46,49,52,55,60,63,80,83,87,90,101,104,108,111,295,298,301,305,308,314,317,321,324,339,342,346,349,352,369,372,376],[11,12,13,21],"blockquote",{},[14,15,16,17],"p",{},"💡 ",[18,19,20],"strong",{},"Özet (TL;DR):",[22,23,24,31,37],"ul",{},[25,26,27,30],"li",{},[18,28,29],{},"Koddan önce:"," Agent'tan iş sürecini, kaynak modelini, erişim sınırlarını, hata davranışını ve sözleşme değişikliğini açıklamasını isteyin; eksik bilgiyi varsayımla doldurmasına izin vermeyin.",[25,32,33,36],{},[18,34,35],{},"Review sırasında:"," HTTP metotlarını, tekrar deneme davranışını, kayıt sahipliğini, hata sözleşmesini, gereğinden geniş veri erişimini ve geriye dönük uyumluluğu bağımsız bir bağlamda kontrol edin.",[25,38,39,42],{},[18,40,41],{},"Teslimattan önce:"," OpenAPI doğrulamasını, sözleşme ve kırılma testlerini, negatif yetki testlerini ve dokümantasyon eşleşmesini pipeline'da zorunlu kılın. İşletme kararlarının sahipliği yine insanlarda kalmalı.",[14,44,45],{},"2021'de bu sitede yedi yazılık bir REST serisi hazırladım: “RESTful API Bileşenleri”, “REST API Tasarım İncelikleri”, “REST API URI Yapısı Nasıl Olmalı?”, “REST API Hata Yönetimi”, “REST API Kimlik Doğrulama Nasıl Yapılır?”, “REST API Güvenliği Nasıl Sağlanır?” ve “REST API Dokümantasyonu Nasıl Oluşturulur?”.",[14,47,48],{},"Bu yazılardaki temel ilkelerin çoğu bugün de geçerli. Seriyi kaldırma kararım, bu ilkelerin artık yanlış olmasıyla ilgili değil. Seri, geliştiricilerin konuları sırayla okuyup REST kararlarını öğrendikten sonra kod yazacağı bir çalışma biçimine göre hazırlanmıştı.",[14,50,51],{},"Bugün pek çok geliştirici ne istediğini AI coding agent'a birkaç cümleyle anlatıp çıkan kod üzerinden ilerliyor. Eski yazıları ayrı ayrı tutmak, doğru bilgiyi artık daha az kullanılan bir öğrenme yolunun içinde bırakıyordu. O yazıları kaldırmaya, yerine bu okuduğunuz yazıyı yazmaya karar verdim.",[14,53,54],{},"Bu yazıda eski serinin tamamını yeniden anlatmayacağım. Oradaki prensipleri AI ile API geliştirirken kullanabileceğimiz üç yere taşıyacağım: başlangıç promptu, kod incelemesi ve teslimat kontrolleri.",[56,57,59],"h2",{"id":58},"bir-rest-api-promptu-neden-eksik-kalır","Bir REST API promptu neden eksik kalır?",[14,61,62],{},"Agent'a “müşteri kayıtları için CRUD API yaz” dediğinizde birkaç dakika içinde çalışan endpoint'ler alabilirsiniz. Fakat çalışan kod şu soruları cevaplamaz:",[22,64,65,68,71,74,77],{},[25,66,67],{},"Müşteri kaydı fiziksel olarak silinebilir mi, arşivlenir mi, anonimleştirilir mi?",[25,69,70],{},"Aynı silme isteği iki kez gelirse ne olur?",[25,72,73],{},"Bir kullanıcı başka bir müşterinin kaydını hangi koşulda görebilir?",[25,75,76],{},"Mobil uygulamanın kullandığı mevcut yanıt değişirse kim etkilenir?",[25,78,79],{},"Hata alan istemci isteği yeniden deneyebilir mi?",[14,81,82],{},"REST kalitesinin ilk adımı bu kararları vermektir. URI ve uygulama kodu daha sonra gelir. Agent, eksik bırakılan yerleri çoğu zaman makul görünen varsayımlarla doldurur. Böylece teknik bir tercih, fark edilmeden işletmenin veri saklama, erişim veya entegrasyon kararına dönüşebilir.",[56,84,86],{"id":85},"koddan-önce-agenta-verilecek-talimat","Koddan önce agent'a verilecek talimat",[14,88,89],{},"Aşağıdaki metin, yeni bir API veya endpoint çalışmasının başına konabilecek kısa bir başlangıç talimatıdır:",[91,92,98],"pre",{"className":93,"code":95,"language":96,"meta":97},[94],"language-text","Henüz kod yazma. Önce bu API değişikliği için:\n\n1. İş sürecini, kaynağın sahibini ve beklenen sonucu açıkla.\n2. Kaynakları, aralarındaki ilişkileri ve önerdiğin URI yapısını çıkar.\n3. Her endpoint için HTTP metodunu, yan etkilerini ve aynı isteğin\n   tekrarında ne olacağını belirt.\n4. Başarılı yanıtları, hata durumlarını ve istemcinin hangi hatada ne\n   yapması gerektiğini tanımla.\n5. Kimlik doğrulama, yetkilendirme, rol, tenant ve kayıt sahipliği\n   kontrollerini ayrı ayrı göster.\n6. Girdi doğrulama, döndürülecek alanlar, istek boyutu, istek sınırı,\n   loglama ve hassas veri risklerini listele.\n7. Mevcut OpenAPI sözleşmesine önerdiğin farkı ve geriye dönük kırılma\n   riskini göster.\n8. Yeni bir veri tabanı, cache, queue veya servis öneriyorsan hangi\n   somut ihtiyacı çözdüğünü ve işletim maliyetini açıkla.\n\nEksik bilgi varsa varsayım yapma. Soruları listele ve bekle.\n","text","",[99,100,95],"code",{"__ignoreMap":97},[14,102,103],{},"Bu talimat agent'a REST öğretmiyor. Koddan önce hangi kararların görünür olması gerektiğini söylüyor. Ürün sahibinin cevaplaması gereken silme veya saklama kararının teknik bir varsayım gibi uygulanmasını da önlüyor.",[56,105,107],{"id":106},"eski-rest-prensiplerini-ai-ile-nasıl-koruyacağız","Eski REST prensiplerini AI ile nasıl koruyacağız?",[14,109,110],{},"Eski serideki ayrıntıları yedi kontrole indirdiğimde ortaya şu tablo çıkıyor:",[112,113,114,130],"table",{},[115,116,117],"thead",{},[118,119,120,124,127],"tr",{},[121,122,123],"th",{},"Prensip",[121,125,126],{},"Agent'a söyle",[121,128,129],{},"Review sırasında kontrol et",[131,132,133,147,160,204,242,255,275],"tbody",{},[118,134,135,141,144],{},[136,137,138],"td",{},[18,139,140],{},"Bileşen ve mimari",[136,142,143],{},"İhtiyaç kanıtlanmadan yeni veri tabanı, cache, queue, servis veya framework ekleme. Her bileşenin çözdüğü problemi ve işletim maliyetini yaz.",[136,145,146],{},"Eklenen her bağımlılık gerçek bir yük, güvenilirlik veya entegrasyon ihtiyacına dayanıyor mu? Ekip bunu işletebilir mi?",[118,148,149,154,157],{},[136,150,151],{},[18,152,153],{},"Kaynak ve URI tasarımı",[136,155,156],{},"URI'leri iş alanındaki kalıcı kaynaklardan türet. İsimlendirme, çoğulluk, küçük harf ve alt kaynak kuralını mevcut API ile tutarlı uygula.",[136,158,159],{},"URI ve HTTP metodu birlikte okununca işlem anlaşılıyor mu? Aynı kaynak başka endpoint'lerde farklı adlandırılmış mı?",[118,161,162,167,174],{},[136,163,164],{},[18,165,166],{},"HTTP metotları",[136,168,169,170,173],{},"Her endpoint için güvenli, tekrarlandığında aynı sonucu üreten ve yeniden denenebilen davranışı açıkla. Yan etkisi olan işi ",[99,171,172],{},"GET"," altında saklama.",[136,175,176,177,179,180,183,184,187,188,191,192,203],{},"Tekrarlanan istek aynı işlemi iki kez doğuruyor mu? ",[99,178,172],{}," durum değiştiriyor mu? ",[99,181,182],{},"PUT",", ",[99,185,186],{},"PATCH"," ve ",[99,189,190],{},"DELETE"," davranışı sözleşmeyle uyumlu mu? ",[193,194,202],"a",{"className":195,"href":197,"rel":198,"target":201},[196],"dofollow","https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc9110.html",[199,200],"nofollow","noopener","_blank","RFC 9110"," bu anlamları tanımlar.",[118,205,206,211,214],{},[136,207,208],{},[18,209,210],{},"Hata yönetimi",[136,212,213],{},"Bütün endpoint'lerde ortak, makine tarafından okunabilir hata biçimi kullan. Durum kodu, güvenli mesaj, alan hataları, problem kodu ve request ID tanımla.",[136,215,216,183,219,183,222,183,225,183,228,187,231,234,235,241],{},[99,217,218],{},"401",[99,220,221],{},"403",[99,223,224],{},"404",[99,226,227],{},"422",[99,229,230],{},"429",[99,232,233],{},"5xx"," yanıtları doğru ayrılmış mı? Stack trace veya hassas bilgi sızıyor mu? İstemci hatadan sonra ne yapacağını anlayabiliyor mu? ",[193,236,240],{"className":237,"href":238,"rel":239,"target":201},[196],"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc9457.html",[199,200],"RFC 9457"," ortak problem yanıtı biçimini verir.",[118,243,244,249,252],{},[136,245,246],{},[18,247,248],{},"Kimlik ve yetki",[136,250,251],{},"Kimlik doğrulama, fonksiyon yetkisi ve kayıt sahipliği kontrollerini ayrı tasarla. Rol, scope, tenant ve nesne sahipliği kurallarını endpoint bazında yaz.",[136,253,254],{},"Geçerli token taşıyan kullanıcı başka bir kullanıcının veya tenant'ın kaydına ID değiştirerek erişebiliyor mu? Yönetici endpoint'i sıradan kullanıcıya açılmış mı?",[118,256,257,262,265],{},[136,258,259],{},[18,260,261],{},"Güvenlik ve kötüye kullanım",[136,263,264],{},"Tüm girdileri şemayla doğrula. Yazılabilir ve döndürülebilir alanları açıkça sınırla. İstek boyutu, istek sınırı, secret kullanımı, loglama ve kötüye kullanım senaryolarını ele al.",[136,266,267,268,274],{},"Fazladan alan göndererek korunan veri değiştirilebiliyor mu? Gereğinden fazla veri dönüyor mu? Negatif yetki, kaynak tüketimi ve hassas iş akışı testleri var mı? ",[193,269,273],{"className":270,"href":271,"rel":272,"target":201},[196],"https:\u002F\u002Fowasp.org\u002FAPI-Security\u002Feditions\u002F2023\u002Fen\u002F0x11-t10\u002F",[199,200],"OWASP API Security Top 10"," review için iyi bir başlangıç listesi sunar.",[118,276,277,282,285],{},[136,278,279],{},[18,280,281],{},"Sözleşme ve dokümantasyon",[136,283,284],{},"Uygulama kodundan önce OpenAPI farkını hazırla. İstek, yanıt, hata, güvenlik ve istek sınırı davranışlarını örneklerle tanımla.",[136,286,287,288,294],{},"Kod ile sözleşme eşleşiyor mu? Değişiklik mevcut istemcileri kırıyor mu? Dokümantasyon ve yayımlanan sözleşme aynı sürümde mi? ",[193,289,293],{"className":290,"href":291,"rel":292,"target":201},[196],"https:\u002F\u002Fspec.openapis.org\u002Foas\u002Flatest.html",[199,200],"OpenAPI"," bu ortak sözleşmenin biçimini tanımlar.",[14,296,297],{},"HATEOAS'tan burada korunması gereken dar prensip şu: Bir sonraki geçerli aksiyon iş akışının parçasıysa, yanıt bunu istemciye tahmin ettirmemeli. AI ile API geliştirirken linkler veya aksiyon imaları JSON içinde agent'ın doğaçlamasına bırakılmamalı; sözleşme kararı olarak görünür olmalı.",[14,299,300],{},"Bu tablo bir API geliştirme kuralı olarak kullanılabilir. Bütün API işleri için geçerli maddeler kod deposundaki kalıcı agent talimatına yazılır. Ürüne veya endpoint'e özgü kararlar ise iş tanımında ve OpenAPI sözleşmesinde tutulur.",[56,302,304],{"id":303},"review-için-ikinci-agenta-verilecek-talimat","Review için ikinci agent'a verilecek talimat",[14,306,307],{},"Kodu üreten agent'a “bir de kendini kontrol et” demek yararlı olabilir. Fakat aynı bağlamda çalışan agent, kendi varsayımını hata olarak görmeyebilir. Review'u ayrı bir görev ve mümkünse ayrı bir agent bağlamı olarak çalıştırmak daha güçlü bir kontrol sağlar.",[91,309,312],{"className":310,"code":311,"language":96,"meta":97},[94],"Bu API değişikliğini bağımsız reviewer olarak incele. Henüz kodu değiştirme.\nUygulayan agent'ın açıklamasını kanıt kabul etme; mevcut OpenAPI sözleşmesini,\nkod deposundaki kuralları ve testleri esas al.\n\nŞunları kontrol et:\n- Kaynak modeli ve URI'ler mevcut API ile tutarlı mı?\n- HTTP metotları, yan etkiler ve tekrar deneme davranışı doğru mu?\n- Başarı ve hata yanıtları sözleşmeyle eşleşiyor mu?\n- Kimlik doğrulama, fonksiyon yetkisi, tenant ve kayıt sahipliği ayrı ayrı\n  uygulanmış mı?\n- Girdi, yazılabilir alanlar ve dönen veri gereğinden geniş mi?\n- Mevcut istemcileri kıracak bir sözleşme değişikliği var mı?\n- Başarılı akışın yanında negatif yetki, doğrulama, istek sınırı ve tekrar\n  deneme testleri var mı?\n\nHer bulgu için etkilenen endpoint'i, kanıtı, riski ve gerekli testi yaz.\nReview onaylanmadan düzeltme yapma.\n",[99,313,311],{"__ignoreMap":97},[14,315,316],{},"Burada review'un amacı kod biçimini düzeltmek değil. Agent'ın işletme kararını yanlış yorumladığı, REST davranışını bozduğu veya güvenlik sınırını atladığı yeri bulmaktır.",[56,318,320],{"id":319},"pipeline-hangi-hataları-otomatik-durdurmalı","Pipeline hangi hataları otomatik durdurmalı?",[14,322,323],{},"Prompt ve review tek başına yeterli değil. Tekrarlanabilir kurallar pipeline'a girmediğinde aynı hata başka bir değişiklikte yeniden ortaya çıkar. En az şu dört kontrol otomatik çalışmalıdır:",[325,326,327,330,333,336],"ol",{},[25,328,329],{},"OpenAPI sözleşmesi geçerli mi ve uygulamayla eşleşiyor mu?",[25,331,332],{},"Sözleşme farkı geriye dönük kırılma yaratıyor mu?",[25,334,335],{},"Sözleşme testleri ile negatif yetki, doğrulama ve tekrar deneme testleri geçiyor mu?",[25,337,338],{},"Yayımlanan dokümantasyon sözleşmeyle aynı sürümde mi?",[14,340,341],{},"Erişim modelini, ödeme davranışını, hassas veriyi, veri silme politikasını veya mevcut istemcileri etkileyen değişiklikler ayrıca adı belli bir insanın onayında durmalı. Bir başka agent'ın “uygun” demesi bu kararların sahipliğini üstlenmez.",[56,343,345],{"id":344},"eski-seri-neden-artık-tek-yazı","Eski seri neden artık tek yazı?",[14,347,348],{},"Eski seri, geliştiricinin REST bilgisini öğrenmesini hedefliyordu. Bugünkü ihtiyaç, bu bilginin AI destekli geliştirme akışında kaybolmamasını sağlamak.",[14,350,351],{},"Bu nedenle yedi ayrı yazı yerine tek bir kontrol akışı daha yararlı:",[325,353,354,357,360,363,366],{},[25,355,356],{},"İş kararını verin.",[25,358,359],{},"Agent'a eksik kararları sordurun.",[25,361,362],{},"Sözleşmeyi koddan önce görün.",[25,364,365],{},"Uygulamayı bağımsız review'dan geçirin.",[25,367,368],{},"Tekrarlanabilir kuralları pipeline'da zorunlu kılın.",[14,370,371],{},"Bir ekip bu kontrolleri promptta, kod deposundaki talimatlarda ve pipeline'da görünür kılamıyorsa eski REST bilgisini yeni çalışma biçimine taşımamış demektir. Agent kodu hızlı yazabilir. API'nin neye söz verdiğine ve hangi riski alamayacağına hâlâ insanlar karar verir.",[56,373,375],{"id":374},"kaynaklar","Kaynaklar",[22,377,378,385,392,399],{},[25,379,380],{},[193,381,384],{"className":382,"href":291,"rel":383,"target":201},[196],[199,200],"OpenAPI Specification",[25,386,387],{},[193,388,391],{"className":389,"href":197,"rel":390,"target":201},[196],[199,200],"RFC 9110: HTTP Semantics",[25,393,394],{},[193,395,398],{"className":396,"href":238,"rel":397,"target":201},[196],[199,200],"RFC 9457: Problem Details for HTTP APIs",[25,400,401],{},[193,402,405],{"className":403,"href":271,"rel":404,"target":201},[196],[199,200],"OWASP API Security Top 10, 2023",{"title":97,"searchDepth":407,"depth":407,"links":408},2,[409,410,411,412,413,414,415],{"id":58,"depth":407,"text":59},{"id":85,"depth":407,"text":86},{"id":106,"depth":407,"text":107},{"id":303,"depth":407,"text":304},{"id":319,"depth":407,"text":320},{"id":344,"depth":407,"text":345},{"id":374,"depth":407,"text":375},[417,418,419],"ai","business","engineering",null,"2026-08-27","AI ile REST API geliştirirken kaynak modeli, HTTP davranışı, hata, yetki, güvenlik ve sözleşme kararlarını prompt ve review aşamasında korumanın kısa rehberi.",false,"md","\u002Fimages\u002Fhero\u002Fai-rest-quality-gates.avif","Bir API isteği, teslimden önce ardışık kalite kapılarından geçiyor.","Deneme",{},true,"\u002Ftr\u002Fyapay-zeka-ile-api-gelistirirken-rest-kalitesini-korumak",7,{"title":6,"description":422},"AI ile REST API geliştirmede kalite nasıl korunur?","yapay-zeka-ile-api-gelistirirken-rest-kalitesini-korumak","tr\u002Fyapay-zeka-ile-api-gelistirirken-rest-kalitesini-korumak",[437,438,439,440],"ai-coding","api-tasarimi","yazilim-yonetimi","api-guvenligi","ai-assisted-rest-api-development","post","8jeX5vlFzr32nit8sx89aNFfkA0yHfNm5WrMAvz0qIU",{"path":445},"\u002Fai-assisted-rest-api-development",{"prev":447,"next":450,"others":453,"lucky":552,"readingTime":431},{"path":448,"title":449},"\u002Ftr\u002Fbanka-hesap-hareketleri-entegrasyonu","Bir Bankayı Entegre Etmek Kolay. Kırk Bankayı Çalışır Tutmak Değil.",{"path":451,"title":452},"\u002Ftr\u002Fbir-butonu-test-konusu-butun-bir-site-degisikligini-kesin-calisacak-cilgin-proje-olarak-gormek","Bir Butonu Test Konusu, Bütün Bir Site Değişikliğini Kesin Çalışacak Çılgın Proje Olarak Görmek",[454,457,460,463,464,465,468,471,474,477,480,483,486,489,492,495,498,501,504,507,510,513,516,519,522,525,528,531,534,537,540,543,546,549],{"path":455,"title":456},"\u002Ftr\u002Fsurec-otomasyonunda-yapay-zeka-ne-zaman-kullanilmali","Bir Süreci Otomatikleştirirken Yapay Zekâ Ne Zaman Gerekli?",{"path":458,"title":459},"\u002Ftr\u002Fai-projesine-model-secerek-baslamayin","AI Projesine Model Seçerek Başlamayın",{"path":461,"title":462},"\u002Ftr\u002Ficerik-budama-nasil-yapilir","İçerik Budama Nasıl Yapılır? Gerçek Bir Content Pruning Vaka Analizi",{"path":448,"title":449},{"path":451,"title":452},{"path":466,"title":467},"\u002Ftr\u002Fteknoloji-yonetimi-ile-dijital-donusum-ayni-sey-degil","Teknoloji Yönetimi ile Dijital Dönüşüm Aynı Şey Değil",{"path":469,"title":470},"\u002Ftr\u002Fturkiyenin-ilk-gercek-zamanli-gizli-musteri-raporlamasi","Türkiye'nin İlk Gerçek Zamanlı Gizli Müşteri Raporlaması",{"path":472,"title":473},"\u002Ftr\u002Fmusteri-memnun-oldugunu-unutur-hatirlatmak-gerek","Müşteri Memnun Olduğunu Unutur, Hatırlatmak Gerek!",{"path":475,"title":476},"\u002Ftr\u002Fai-gorunurluk-araclari-gercekten-ise-yariyor-mu","AI Görünürlük Araçları Gerçekten İşe Yarıyor mu?",{"path":478,"title":479},"\u002Ftr\u002Fmesele-llms-txt-degil-yegen","Mesele llms.txt Değil Yeğen!",{"path":481,"title":482},"\u002Ftr\u002Fsirketinizin-ai-bagimliliginin-farkinda-misiniz","Şirketinizin AI Bağımlılığının Farkında mısınız?",{"path":484,"title":485},"\u002Ftr\u002Fai-hep-bu-kadar-iyi-degildi-biz-cok-hizli-alistik","AI Hep Bu Kadar İyi Değildi. Biz Çok Hızlı Alıştık",{"path":487,"title":488},"\u002Ftr\u002Fyapay-zeka-kod-yazmayi-ucuzlatti-dogrulamayi-degil","Yapay Zeka Kod Yazmayı Ucuzlattı, Doğrulamayı Değil",{"path":490,"title":491},"\u002Ftr\u002Fknow-how-pis-agzima-dus","Know-how Piş, Ağzıma Düş: Bilgiyi Uygulamak mı, Üretmek mi?",{"path":493,"title":494},"\u002Ftr\u002Fesigin-sifira-inmesi","Eşik Düştü: ProductLog’un Bana Gösterdiği Build in Public Riski",{"path":496,"title":497},"\u002Ftr\u002Fbuild-in-public-2-0","AI Çağında Build in Public: Neyi Paylaşmalı, Neyi Saklamalı?",{"path":499,"title":500},"\u002Ftr\u002Fai-atiflari-kendi-saatine-gore-isliyor","Yapay Zeka Görünürlüğü Aramadan Önce Düştü: Google Verileri Teorimi Nasıl Değiştirdi?",{"path":502,"title":503},"\u002Ftr\u002Fonceki-vibe-coder-donemi-basliyor","“Önceki Vibe Coder” Dönemi Başlıyor: Temiz Kodun Görünmezliği ve Yapay Zekanın Teknik Borç Faturası",{"path":505,"title":506},"\u002Ftr\u002Fbir-zafer-bir-kac-yenilgi","Bir Zafer, Birkaç Yenilgi",{"path":508,"title":509},"\u002Ftr\u002Fyapay-zeka-ve-hic-yapilmayan-ise-alimlar","Yapay zekanın görünmez kıldığı işe alım",{"path":511,"title":512},"\u002Ftr\u002Fproductlog-once-kendim-icin-insa-ettigim-platform","ProductLog: Önce Kendim İçin İnşa Ettiğim Platform",{"path":514,"title":515},"\u002Ftr\u002Fanlama-borcu-fatura-tek-basina-gelir","Anlama Borcu: Fatura Tek Başına Gelir",{"path":517,"title":518},"\u002Ftr\u002Fwordpressten-nuxta-yapay-zeka-destekli-icerik-akisi","WordPress’ten Nuxt’a: Yapay Zekâ Destekli İçerik Akışı Kurmak",{"path":520,"title":521},"\u002Ftr\u002Fai-gorunurlugu-yanilsamasi-bing-citation-share","Yapay Zeka Görünürlüğü Yanılsaması: Bing'in Citation Share Verileri Gerçekte Ne Söylüyor?",{"path":523,"title":524},"\u002Ftr\u002Fayda-1-milyon-gosterim-sifir-gelir-programatik-seo-vaka-analizi","Ayda 1 Milyon Gösterim, Sıfır Gelir: Programatik SEO Vaka Analizi (Post-Mortem)",{"path":526,"title":527},"\u002Ftr\u002Fyazilimciligin-sonu-mu-geldi-yapay-zeka-ile-bir-ronesans-yasaniyor","Yazılımcılığın Sonu mu Geldi? Yapay zeka ile bir rönesans yaşanıyor.",{"path":529,"title":530},"\u002Ftr\u002Fyapay-zeka-caginda-cocuk-yetistirmek","Yapay Zeka Çağında Çocuk Yetiştirmek",{"path":532,"title":533},"\u002Ftr\u002Fredar-kap-bildirimleri-icin-yapay-zeka-destekli-ozet-ve-uyari-sistemi","Redar: KAP Bildirimleri İçin Yapay Zeka Destekli Özet ve Uyarı Sistemi",{"path":535,"title":536},"\u002Ftr\u002Fpesintaksit-pesin-mi-taksit-mi-gercek-maliyet-hesaplama-ve-finansal-farkindalik-araci","Peşin mi, Taksit mi? – PeşinTaksit’in Ortaya Çıkış Hikayesi",{"path":538,"title":539},"\u002Ftr\u002Fchatbot-gelistirmek-sandiginiz-kadar-basit-degil-gercek-bir-deneyimden-ogrendiklerim","Chatbot geliştirmek sanıldığı kadar basit değil: gerçek bir deneyimden öğrendiklerim",{"path":541,"title":542},"\u002Ftr\u002Fcloudflare-docker-ve-acik-kaynak-araclarla-bir-altyapi-kurmak-camiler-orgun-teknik-hikayesi","Camiler.org'u Neden Tek VPS Üzerinde Çalıştırıyorum?",{"path":544,"title":545},"\u002Ftr\u002Fkurallardan-kararlara-vanityde-gercek-zamanli-karar-destek-ve-satis-yonetim-platformu","Sağlık turizminde lead yönetimi: Manuel dağıtımdan gerçek zamanlı satış sistemine nasıl geçtik?",{"path":547,"title":548},"\u002Ftr\u002Fgsc-verilerinden-anlam-cikarmak-rankextension-yolculugunun-ilk-adimi","RankExtension'a Ne Oldu?",{"path":550,"title":551},"\u002Ftr\u002Fdusuk-rekabetli-serpte-api-tabanli-bir-seo-denemesi","camiler.org: Google Maps ve OpenAI ile Bir Programatik SEO Deneyi",{"path":475,"title":476},[554,556],{"path":487,"title":488,"date":555},"2026-08-18",{"path":514,"title":515,"date":557},"2026-06-23",[559,561,563],{"path":472,"title":473,"date":560},"2026-08-24",{"path":532,"title":533,"date":562},"2025-10-30",{"path":499,"title":500,"date":564},"2026-06-28",1787875360699]