[{"data":1,"prerenderedAt":700},["ShallowReactive",2],{"post-\u002Ftr\u002Frest-api-guvenligi-nasil-saglanir":3},{"page":4,"translation":553,"nav":555,"related":680,"random":688},{"id":5,"title":6,"body":7,"categories":535,"category":537,"date":538,"description":539,"draft":540,"extension":541,"image":542,"kind":537,"lang":399,"meta":543,"navigation":259,"path":97,"readingTime":263,"seo":544,"slug":545,"stem":546,"tags":547,"translationKey":550,"type":536,"updated":551,"__hash__":552},"postsTr\u002Ftr\u002Frest-api-guvenligi-nasil-saglanir.md","REST Api Güvenliği Nasıl Sağlanır?",{"type":8,"value":9,"toc":525},"minimark",[10,47,54,111,114,119,126,129,142,144,148,151,180,186,188,192,199,219,225,285,287,291,294,305,307,311,314,317,339,348,350,354,357,377,379,383,386,388,392,497,499,502,508,513,521],[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],{},"Neden Önemli?"," REST API'ler, dış dünyaya açık kapılardır. Doğru yapılandırılmamış bir API; veri sızıntılarına, yetkisiz erişimlere ve DDoS saldırılarına davetiye çıkarır.",[25,32,33,36],{},[18,34,35],{},"Temel Güvenlik Katmanları:"," HTTPS (şifreleme), yetkilendirme (OAuth2\u002FJWT), girdi doğrulaması (XSS\u002FSQLi önleme), CORS yapılandırması ve hız sınırlamadır (Rate Limiting).",[25,38,39,42,43,46],{},[18,40,41],{},"Referans:"," Güvenlik mimarinizi oluştururken ",[18,44,45],{},"OWASP API Security Top 10"," standartlarını temel almalısınız.",[14,48,49,50,53],{},"Bu yazı ",[18,51,52],{},"RESTFul Api Tasarım İncelikleri"," serisinin bir parçası niteliğindedir. Eğer okumadıysanız önce serinin diğer yazılarını okumanızı tavsiye ederim:",[22,55,56,63,69,75,81,87,93,99,105],{},[25,57,58],{},[59,60,62],"a",{"href":61},"\u002Ftr\u002Frest-api-tasarimi#rest-api-temelleri","REST Api Temelleri",[25,64,65],{},[59,66,68],{"href":67},"\u002Ftr\u002Frest-api-tasarimi#cikti-formati","REST API Çıktı Formatı Ne Olmalı?",[25,70,71],{},[59,72,74],{"href":73},"\u002Ftr\u002Frest-api-uri-yapisi-nasil-olmali","REST API URI yapısı nasıl olmalı?",[25,76,77],{},[59,78,80],{"href":79},"\u002Ftr\u002Frestapi-ve-hateoas-kavrami","REST Api HATEOAS kavramı nedir?",[25,82,83],{},[59,84,86],{"href":85},"\u002Ftr\u002Frest-api-kimlik-dogrulama-nasil-yapilir","REST API kimlik doğrulama nasıl yapılır? (Authentication)",[25,88,89],{},[59,90,92],{"href":91},"\u002Ftr\u002Frest-api-hata-yonetimi","REST API hata yönetimi nasıl yapılır? (Error Handling)",[25,94,95],{},[59,96,98],{"href":97},"\u002Ftr\u002Frest-api-guvenligi-nasil-saglanir","REST API güvenliği nasıl sağlanır? (Security)",[25,100,101],{},[59,102,104],{"href":103},"\u002Ftr\u002Frest-api-dokumantasyonu-nasil-yapilir","REST API Dokümantasyon ve Test'i nasıl yapılır?",[25,106,107],{},[59,108,110],{"href":109},"\u002Ftr\u002Ffull-stack-proje-gelistiriyoruz","Örnek REST API Projesi",[112,113],"hr",{},[115,116,118],"h2",{"id":117},"_1-taşıma-katmanı-güvenliği-https-ve-tls","1. Taşıma Katmanı Güvenliği: HTTPS ve TLS",[14,120,121,122,125],{},"REST API güvenliğinin en temel ve tavizsiz ilk adımı ",[18,123,124],{},"HTTPS"," protokolüdür. Üretim ortamındaki (production) bir REST API'nin yalnızca HTTPS üzerinden çalışması şarttır.",[14,127,128],{},"HTTP kullanmak, evinizin kapısını kilitleyip pencereleri sonuna kadar açık bırakmaya benzer. Şifrelenmemiş HTTP trafiği, ağ üzerindeki herhangi biri tarafından dinlenebilir (Man-in-the-Middle - MitM saldırıları). HTTPS, istemci ile sunucu arasındaki tüm trafiği TLS (Transport Layer Security) kullanarak şifreler.",[11,130,131],{},[14,132,133,134,137,138,141],{},"🔒 ",[18,135,136],{},"Ek Güvenlik:"," Sadece HTTPS kullanmak yetmez; API sunucunuzda eski SSL ve zayıf TLS sürümlerini (TLS 1.0 ve 1.1) devre dışı bırakmalı, güncel ve güvenli olan ",[18,139,140],{},"TLS 1.2 ve TLS 1.3"," protokollerini zorunlu kılmalısınız.",[112,143],{},[115,145,147],{"id":146},"_2-kimlik-doğrulama-ve-yetkilendirme-authn-authz","2. Kimlik Doğrulama ve Yetkilendirme (AuthN & AuthZ)",[14,149,150],{},"API'niz herkese açık değilse, her isteğin kim tarafından yapıldığını doğrulamak (Authentication) ve bu kişinin talep ettiği işleme izni olup olmadığını denetlemek (Authorization) zorundasınız.",[22,152,153,163,169],{},[25,154,155,158,159,162],{},[18,156,157],{},"JWT (JSON Web Token):"," Durumsuz (stateless) API'ler için oldukça popülerdir. Ancak JWT kullanırken token'ların şifrelenmesi için ",[18,160,161],{},"RS256"," (asimetrik) gibi güvenli algoritmalar tercih edilmeli ve token süresi (Expiration Time) kısa tutulmalıdır.",[25,164,165,168],{},[18,166,167],{},"OAuth 2.0:"," Üçüncü parti uygulamaların kullanıcı verilerine güvenli erişim sağlaması için endüstri standardıdır.",[25,170,171,174,175,179],{},[18,172,173],{},"API Keys:"," Sistemler arası (Machine-to-Machine) basit iletişimler için kullanılabilir. Ancak API anahtarları asla URL parametrelerinde değil, HTTP Header'larında (",[176,177,178],"code",{},"X-API-Key",") taşınmalıdır.",[14,181,182,183],{},"Kimlik doğrulama yöntemleri hakkında daha detaylı bilgi için serinin ilgili yazısına göz atabilirsiniz:\n👉 ",[59,184,185],{"href":85},"REST API Kimlik Doğrulama Nasıl Yapılır?",[112,187],{},[115,189,191],{"id":190},"_3-girdi-doğrulaması-input-validation-ve-temizleme","3. Girdi Doğrulaması (Input Validation) ve Temizleme",[14,193,194,195,198],{},"İstemciden gelen hiçbir veriye asla ",[18,196,197],{},"güvenmemelisiniz",". API'nize gelen tüm girdiler (URL parametreleri, sorgu parametreleri, HTTP gövdesi ve HTTP başlıkları) sunucu tarafında sıkı bir doğrulamadan geçirilmelidir.",[22,200,201,207,213],{},[25,202,203,206],{},[18,204,205],{},"SQL Injection (SQLi):"," Ham SQL sorguları yerine hazırlıklı ifadeler (Prepared Statements \u002F ORM) kullanın.",[25,208,209,212],{},[18,210,211],{},"XSS (Cross-Site Scripting):"," HTML etiketlerini ve JavaScript betiklerini temizleyin (Sanitization).",[25,214,215,218],{},[18,216,217],{},"İstek Boyutu Sınırı:"," Sunucuya devasa boyutlarda JSON veya dosya gönderilerek hafızanın (RAM) şişirilmesini engellemek için maksimum istek boyutunu (örneğin 1MB veya 10MB) sınırlandırın.",[14,220,221],{},[222,223,224],"em",{},"PHP PDO Kullanarak Güvenli Veri Sorgulama Örneği:",[226,227,232],"pre",{"className":228,"code":229,"language":230,"meta":231,"style":231},"language-php shiki shiki-themes github-light github-dark","\u002F\u002F Hatalı ve Güvensiz Yöntem (SQL Injection'a açık)\n$input = $_GET['username'];\n$query = \"SELECT * FROM users WHERE username = '$input'\"; \n\n\u002F\u002F Doğru ve Güvenli Yöntem (Prepared Statement)\n$statement = $pdo->prepare('SELECT * FROM users WHERE username = :username');\n$statement->execute(['username' => $_GET['username']]);\n$user = $statement->fetch();\n","php","",[176,233,234,242,248,254,261,267,273,279],{"__ignoreMap":231},[235,236,239],"span",{"class":237,"line":238},"line",1,[235,240,241],{},"\u002F\u002F Hatalı ve Güvensiz Yöntem (SQL Injection'a açık)\n",[235,243,245],{"class":237,"line":244},2,[235,246,247],{},"$input = $_GET['username'];\n",[235,249,251],{"class":237,"line":250},3,[235,252,253],{},"$query = \"SELECT * FROM users WHERE username = '$input'\"; \n",[235,255,257],{"class":237,"line":256},4,[235,258,260],{"emptyLinePlaceholder":259},true,"\n",[235,262,264],{"class":237,"line":263},5,[235,265,266],{},"\u002F\u002F Doğru ve Güvenli Yöntem (Prepared Statement)\n",[235,268,270],{"class":237,"line":269},6,[235,271,272],{},"$statement = $pdo->prepare('SELECT * FROM users WHERE username = :username');\n",[235,274,276],{"class":237,"line":275},7,[235,277,278],{},"$statement->execute(['username' => $_GET['username']]);\n",[235,280,282],{"class":237,"line":281},8,[235,283,284],{},"$user = $statement->fetch();\n",[112,286],{},[115,288,290],{"id":289},"_4-cors-cross-origin-resource-sharing-yapılandırması","4. CORS (Cross-Origin Resource Sharing) Yapılandırması",[14,292,293],{},"CORS, tarayıcıların API'nize farklı origin'lerden (alan adlarından) gelen istekleri yapıp yapamayacağını kontrol eden bir güvenlik mekanizmasıdır.",[14,295,296,297,300,301,304],{},"Birçok geliştirici kolaylık olsun diye ",[176,298,299],{},"Access-Control-Allow-Origin: *"," (herkese izin ver) başlığını kullanır. Ancak kimlik doğrulama gerektiren, hassas veriler barındıran API'lerde bu başlık büyük bir güvenlik açığıdır. API'nize yalnızca izin verdiğiniz web uygulamalarının erişebilmesi için spesifik alan adlarını tanımlamalı ve ",[176,302,303],{},"Credentials"," (çerez\u002FAuthorization header) geçişlerini doğru yapılandırmalısınız.",[112,306],{},[115,308,310],{"id":309},"_5-hız-sınırlaması-rate-limiting","5. Hız Sınırlaması (Rate Limiting)",[14,312,313],{},"İsteklere sunucu veya uygulama seviyesinde sınır koymak, API'nizi kaba kuvvet (Brute Force) ve DDoS saldırılarına karşı korur. Ayrıca kaynaklarınızın aşırı tüketilmesini (resource starvation) engeller.",[14,315,316],{},"API kullanıcılarının bu limitlere uyum sağlayabilmesi için HTTP yanıtlarında bilgilendirici başlıklar dönülmelidir:",[226,318,322],{"className":319,"code":320,"language":321,"meta":231,"style":231},"language-http shiki shiki-themes github-light github-dark","X-Rate-Limit-Limit: 1000      # Mevcut periyotta izin verilen maksimum istek\nX-Rate-Limit-Remaining: 985   # Mevcut periyotta kalan istek hakkı\nX-Rate-Limit-Reset: 16200000  # Limitin sıfırlanacağı Unix zaman damgası\n","http",[176,323,324,329,334],{"__ignoreMap":231},[235,325,326],{"class":237,"line":238},[235,327,328],{},"X-Rate-Limit-Limit: 1000      # Mevcut periyotta izin verilen maksimum istek\n",[235,330,331],{"class":237,"line":244},[235,332,333],{},"X-Rate-Limit-Remaining: 985   # Mevcut periyotta kalan istek hakkı\n",[235,335,336],{"class":237,"line":250},[235,337,338],{},"X-Rate-Limit-Reset: 16200000  # Limitin sıfırlanacağı Unix zaman damgası\n",[14,340,341,342,347],{},"Limit aşıldığında API, standart olarak ",[18,343,344],{},[176,345,346],{},"429 Too Many Requests"," HTTP durum koduyla yanıt vermelidir.",[112,349],{},[115,351,353],{"id":352},"_6-hata-yönetimi-ve-bilgi-i̇fşası-information-disclosure","6. Hata Yönetimi ve Bilgi İfşası (Information Disclosure)",[14,355,356],{},"Hataları yönetirken geliştiriciye kolaylık sağlamak ile saldırganlara bilgi sızdırmak arasındaki dengeyi iyi kurmalısınız. Hata yanıtlarında asla sistem mimarisini ele verecek veritabanı şemaları, stack trace (kod yığın izi) veya sunucu sürüm bilgileri paylaşmlmamalıdır.",[22,358,359,369],{},[25,360,361,362,365,366],{},"❌ ",[18,363,364],{},"Hatalı:"," ",[176,367,368],{},"Database Connection Error: Access denied for user 'admin'@'10.0.0.5' (using password: YES)",[25,370,371,365,374],{},[18,372,373],{},"Doğru:",[176,375,376],{},"Internal Server Error. Please contact support with request ID: #98231",[112,378],{},[115,380,382],{"id":381},"_7-waf-web-application-firewall-kullanımı","7. WAF (Web Application Firewall) Kullanımı",[14,384,385],{},"Uygulama kodunuzda güvenlik önlemleri alsanız da, SQL Injection, XSS ve DDoS gibi saldırıları uygulama katmanına ulaşmadan engellemek kaynak yönetimi açısından çok daha verimlidir. Cloudflare, AWS WAF gibi bulut tabanlı sistemler veya sunucu düzeyinde kurulacak modüller (ModSecurity vb.) saldırı isteklerini en alt katmanda filtreleyerek sunucunuzun yükünü hafifletir.",[112,387],{},[115,389,391],{"id":390},"güvenlik-yöntemleri-karşılaştırma-tablosu","Güvenlik Yöntemleri Karşılaştırma Tablosu",[393,394,395,415],"table",{},[396,397,398],"thead",{},[399,400,401,406,409,412],"tr",{},[402,403,405],"th",{"align":404},"left","Güvenlik Katmanı",[402,407,408],{"align":404},"Hangi Saldırıyı Önler?",[402,410,411],{"align":404},"Zorluk Derecesi",[402,413,414],{"align":404},"Maliyet \u002F Performans Etkisi",[416,417,418,435,451,467,482],"tbody",{},[399,419,420,426,429,432],{},[421,422,423],"td",{"align":404},[18,424,425],{},"HTTPS (TLS 1.3)",[421,427,428],{"align":404},"MitM (Ortadaki Adam), Dinleme",[421,430,431],{"align":404},"Düşük",[421,433,434],{"align":404},"Çok Düşük (Modern CPU'lar için önemsiz)",[399,436,437,442,445,448],{},[421,438,439],{"align":404},[18,440,441],{},"Rate Limiting",[421,443,444],{"align":404},"DDoS, Brute Force, Kaynak Sömürüsü",[421,446,447],{"align":404},"Orta",[421,449,450],{"align":404},"Düşük (Redis\u002FMemcached ile kolayca çözülür)",[399,452,453,458,461,464],{},[421,454,455],{"align":404},[18,456,457],{},"Input Validation",[421,459,460],{"align":404},"SQL Injection, XSS, Buffer Overflow",[421,462,463],{"align":404},"Yüksek (Sürekli bakım gerekir)",[421,465,466],{"align":404},"Yok (İşlemci üzerinde minimal yük)",[399,468,469,474,477,479],{},[421,470,471],{"align":404},[18,472,473],{},"CORS Config",[421,475,476],{"align":404},"CSRF, Yetkisiz Tarayıcı İstekleri",[421,478,431],{"align":404},[421,480,481],{"align":404},"Yok",[399,483,484,489,492,494],{},[421,485,486],{"align":404},[18,487,488],{},"WAF",[421,490,491],{"align":404},"Bilinen tüm Web zafiyetleri ve botlar",[421,493,447],{"align":404},[421,495,496],{"align":404},"Değişken (Bulut sağlayıcı ücretleri)",[112,498],{},[14,500,501],{},"Aklımıza geldikçe veya yeni standartlar geliştikçe buraya yeni başlıklar veya bilgiler ekleyeceğim. Bir sonraki bölümde API dokümantasyonunun nasıl yapıldığını inceleyeceğiz.",[14,503,504,505],{},"👉 ",[59,506,507],{"href":103},"REST Api Dokümantasyonu Nasıl Oluşturulur?",[509,510,512],"h5",{"id":511},"bu-yazıda-yapılan-değişiklikler","Bu Yazıda Yapılan Değişiklikler",[22,514,515,518],{},[25,516,517],{},"20.06.2026: Yazı içeriği modernize edildi. OWASP API Security ilkeleri doğrultusunda CORS yapılandırması, girdi doğrulama için güvenli PHP PDO kod örneği, TLS sürüm detayları ve karşılaştırma tablosu eklenerek LLO optimizasyonları yapıldı.",[25,519,520],{},"11.05.2022: Yazı özeti düzenlendi.",[522,523,524],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":231,"searchDepth":244,"depth":244,"links":526},[527,528,529,530,531,532,533,534],{"id":117,"depth":244,"text":118},{"id":146,"depth":244,"text":147},{"id":190,"depth":244,"text":191},{"id":289,"depth":244,"text":290},{"id":309,"depth":244,"text":310},{"id":352,"depth":244,"text":353},{"id":381,"depth":244,"text":382},{"id":390,"depth":244,"text":391},[536],"technical",null,"2021-02-16","Bu yazı RESTFul Api Tasarım İncelikleri serisinin bir parçası niteliğindedir. Eğer okumadıysanız önce serinin diğer yazılarını okumanızı tavsiye ederim.",false,"md","\u002Fimages\u002Fhero\u002Frest-api-security.avif",{},{"title":6,"description":539},"rest-api-guvenligi-nasil-saglanir","tr\u002Frest-api-guvenligi-nasil-saglanir",[548,549],"api","rest","rest-api-security","2022-05-11","z_J2McfD2C0E65QxyMsYPNAOb74cO-aFeXDk9KVT7e0",{"path":554},"\u002Frest-api-security",{"prev":556,"next":557,"others":560,"lucky":679,"readingTime":263},{"path":103,"title":507},{"path":558,"title":559},"\u002Ftr\u002Fnostalji-ibibik-online","Nostalji: İbibik Online (1998'den Bir Web Macerası)",[561,564,567,570,573,575,578,581,584,587,590,593,596,599,602,605,608,611,614,617,620,623,626,629,632,635,638,640,643,646,649,652,655,658,661,664,667,670,673,676],{"path":562,"title":563},"\u002Ftr\u002Fvite-nedir","Vite Nedir? Modern Web Geliştirme ve Paketleme Aracı",{"path":565,"title":566},"\u002Ftr\u002Frest-api-tasarimi","REST API Tasarım İncelikleri",{"path":568,"title":569},"\u002Ftr\u002Fes15-nedir-ecmascript-2024-nedir","ES15 nedir? ECMAScript 2024 nedir?",{"path":571,"title":572},"\u002Ftr\u002Fbridge-tasarim-deseni-nedir","Bridge Tasarım Deseni Nedir?",{"path":91,"title":574},"REST Api Hata Yönetimi",{"path":576,"title":577},"\u002Ftr\u002Fobserver-tasarim-deseni-nedir","Observer Tasarım Deseni Nedir?",{"path":579,"title":580},"\u002Ftr\u002Fiterator-tasarim-deseni-nedir","Iterator Tasarım Deseni Nedir?",{"path":582,"title":583},"\u002Ftr\u002Fubuntu-20-04-uzerinde-cyberpanel-kurulumu","Ubuntu 20.04 üzerinde CyberPanel kurulumu",{"path":585,"title":586},"\u002Ftr\u002Fcodeserver-nedir-codeserver-nasil-kurulur","Code-Server Nedir? Bulutta VS Code Geliştirme Ortamı Kurulumu",{"path":588,"title":589},"\u002Ftr\u002Froot-yetkisi-olmayan-kullanici-ssh-baglantisini-ssh-baglantisini-ssh-anahtari-ile-nasil-kurabilir","Root yetkisi olmayan kullanıcı, SSH bağlantısını, SSH anahtarı ile nasıl kurabilir?",{"path":591,"title":592},"\u002Ftr\u002Fphp-8-0-yenilikler","Merhaba PHP 8: Modern PHP 8.x Çağı",{"path":594,"title":595},"\u002Ftr\u002Fmerhaba-gluster","Merhaba Gluster: Dağıtık Dosya Sistemi Nedir?",{"path":597,"title":598},"\u002Ftr\u002Fgarbage-collection-ve-golang","Garbage Collection ve Go (Golang)",{"path":600,"title":601},"\u002Ftr\u002Fmerhaba-phalcon-framework","Merhaba Phalcon Framework",{"path":603,"title":604},"\u002Ftr\u002Fubuntu-guncellemesi-sonrasi-cyberpanele-ulasilamama-sorunlarini-giderme","Ubuntu Güncellemesi Sonrası CyberPanel'e Ulaşılamama Sorunlarını Giderme",{"path":606,"title":607},"\u002Ftr\u002Fcomposite-tasarim-deseni-nedir","Composite Tasarım Deseni Nedir?",{"path":609,"title":610},"\u002Ftr\u002Ftasarim-kaliplari-design-patterns-factory-method-nedir","Factory Method Tasarım Deseni Nedir?",{"path":612,"title":613},"\u002Ftr\u002Ftailwind-css-just-in-time-modu","Tailwind CSS Just-in-Time (JIT) Modu Nedir?",{"path":615,"title":616},"\u002Ftr\u002Fchain-of-responsibility-deseni-nedir","Chain of Responsibility Deseni Nedir?",{"path":618,"title":619},"\u002Ftr\u002Fearly-return-erken-donus-nedir","Early Return \u002F Erken Dönüş nedir?",{"path":621,"title":622},"\u002Ftr\u002Fdocker-ile-redis-kurulumu","Docker ile Redis Kurulumu",{"path":624,"title":625},"\u002Ftr\u002Fgoda-iota-nedir-iota-ne-zaman-ve-nerede-kullanilir","Go'da iota Nedir? iota Ne Zaman ve Nerede Kullanılır?",{"path":627,"title":628},"\u002Ftr\u002Ftasarim-kaliplari-design-patterns-abstract-factory-nedir","Abstract Factory Tasarım Deseni Nedir?",{"path":630,"title":631},"\u002Ftr\u002Fes6-nedir-ecmascript-2015-nedir","ES6 Nedir? ECMAScript 2015 Nedir?",{"path":633,"title":634},"\u002Ftr\u002Ftemplate-method-tasarim-deseni-nedir","Template Method Tasarım Deseni Nedir?",{"path":636,"title":637},"\u002Ftr\u002Flitespeed-web-server-performans-artisi","Konfor Alanından Çıkıp, Konforlu Bir VPS'e Geçmek: LiteSpeed Web Server",{"path":109,"title":639},"Full Stack Proje Geliştiriyoruz",{"path":641,"title":642},"\u002Ftr\u002Fvisitor-tasarim-deseni-nedir","Visitor Tasarım Deseni Nedir?",{"path":644,"title":645},"\u002Ftr\u002Ftemiz-moduler-ve-yeniden-kullanilabilir-php-kodu-yazma-rehberi","PHP'de Temiz, Modüler ve Yeniden Kullanılabilir Kod Yazma Rehberi",{"path":647,"title":648},"\u002Ftr\u002Fself-hosted-api-gateway-nasil-kurulur-kapsamli-rehber","Self-Hosted API Gateway Nasıl Kurulur? Kapsamlı Rehber",{"path":650,"title":651},"\u002Ftr\u002Fbuilder-tasarim-deseni-nedir","Builder Tasarım Deseni Nedir?",{"path":653,"title":654},"\u002Ftr\u002Frabbitmq-nedir","RabbitMQ Nedir?",{"path":656,"title":657},"\u002Ftr\u002Fdocker-swarm-nedir","Docker Swarm Nedir?",{"path":659,"title":660},"\u002Ftr\u002Fadapter-tasarim-deseni-nedir","Adapter Tasarım Deseni Nedir?",{"path":662,"title":663},"\u002Ftr\u002Fphalcon-frameworkun-gelecegi","Phalcon Framework'ün Geleceği: Bir Devrin Sonu",{"path":665,"title":666},"\u002Ftr\u002Fes11-nedir-ecmascript-2020-nedir","ES11 Nedir? ECMAScript 2020 Nedir?",{"path":668,"title":669},"\u002Ftr\u002Fvue-3-hakkinda-bilmeniz-gerekenler-yenilikler","Vue 3 Hakkında Bilmeniz Gerekenler ve Yenilikler",{"path":671,"title":672},"\u002Ftr\u002Fdocker-ve-portainer-kurulumu","Docker ve Portainer Kurulumu",{"path":674,"title":675},"\u002Ftr\u002Fmemento-tasarim-deseni-nedir","Memento Tasarım Deseni Nedir?",{"path":677,"title":678},"\u002Ftr\u002Fes13-nedir-ecmascript-2022-nedir","ES13 nedir? ECMAScript 2022 nedir?",{"path":627,"title":628},[681,684,685,686],{"path":79,"title":682,"date":683},"RestApi ve HATEOAS Kavramı","2021-02-24",{"path":109,"title":639,"date":538},{"path":103,"title":507,"date":538},{"path":91,"title":574,"date":687},"2021-02-15",[689,693,697],{"path":690,"title":691,"date":692},"\u002Ftr\u002Fes7-nedir-ecmascript-2016-nedir","ES7 Nedir? ECMAScript 2016 Nedir?","2021-10-19",{"path":694,"title":695,"date":696},"\u002Ftr\u002Ffacade-tasarim-deseni-nedir","Facade Tasarım Deseni Nedir?","2021-09-13",{"path":698,"title":699,"date":692},"\u002Ftr\u002Fes9-nedir-ecmascript-2018-nedir","ES9 Nedir? ECMAScript 2018 Nedir?",1782142034635]