Yanıtın dönüşü ve yayın
Yayına alma: build, ortam ve sağlık kontrolü
Kodun bilgisayarından üretime güvenle gitmesi: CI, yapılandırma, sırlar ve geri dönüş planı.
Kavramı anlayalım
Yayına alma, her seferinde aynı şekilde tekrarlanabilen bir süreç olmalıdır. Sürekli entegrasyon (CI), her gönderimde kodu temiz bir ortamda derler, tip kontrolü ve lint yapar, testleri çalıştırır. Bu projede GitHub Actions; frontend’de typecheck, lint, sözleşme testleri, üretim derlemesi ve Playwright uçtan uca testlerini, backend’de .NET derlemesi ve güvenlik kontrollerini çalıştırır. Kırmızı bir CI, sorunun kullanıcıya ulaşmadan yakalandığı anlamına gelir.
Aynı derleme çıktısı farklı ortamlarda farklı yapılandırmayla çalışır. Ortama özgü değerler (API adresi, site adresi, bağlantı dizesi, anahtarlar) koda değil ortam değişkenlerine yazılır. Next.js’te NEXT_PUBLIC_ önekli değişkenler tarayıcı paketine gömülür; bu yüzden sırlar asla bu önekle tanımlanmaz.
Yayın sonrası doğrulama da sürecin parçasıdır: sağlık uç noktası yanıt veriyor mu, hata oranı arttı mı, temel sayfalar açılıyor mu? Veritabanı migration’ları uygulanmadan önce yedek alınır. Bir sorun çıktığında önceki sürüme dönmenin yolu önceden bilinmeli ve denenmiş olmalıdır.
Elle ve her seferinde farklı yapılan yayınlar, hataların en sık kaynağıdır.
Bir API anahtarını NEXT_PUBLIC_ önekiyle tanımlayıp tarayıcıya sızdırmak.
Aynı konu. Üç farklı derinlik.
# frontend/.env.local (depoya girmez)
API_BASE_URL=http://127.0.0.1:5048 # yalnız sunucu
SITE_URL=https://ataberksahin.net
# NEXT_PUBLIC_ öneki YOK: tarayıcıya gömülmezSunucuya özel değerler öneksiz tanımlanır ve tarayıcı paketine girmez.
Bu sayfa gerçek bir sunucuya veya veritabanına bağlanmaz. Kod örnekleri .NET 8, Next.js ve SQL Server için temsilîdir; süreler simülasyondaki örnek değerlerdir, ölçüm değildir. Örnekleri yalnız kendi geliştirme ortamında dene; gerçek bağlantı dizesi, token veya parola paylaşma.
Önce kendin dene.
Bir geliştirici harita servisi anahtarını NEXT_PUBLIC_MAPS_KEY olarak ekledi. Bu bir sorun mu? Hangi durumda kabul edilebilir?
Çözümü ve açıklamasını göster
Değer tarayıcı paketine gömülür; herkes görebilir.
Kabul edilebilir: anahtar zaten istemcide kullanılmak üzere tasarlanmışsa
(alan adı/referrer kısıtlı, kota sınırlı, yalnız herkese açık işlemler).
Gizli anahtarlar sunucuda kalır ve istek bir route handler üzerinden yapılır.NEXT_PUBLIC_ ‘herkese açık’ demektir. Bir değerin bu önekle tanımlanması, onu yayımlamakla aynıdır.