Express API'ler ile Yaptığım 5 Production Hatası

API'ler karmaşık kodlar yüzünden bozulmaz.

Sıkıcı detayları görmezden geldiğiniz için bozulurlar.

Bu beş dersi gerçek production hatalarından öğrendim.

  1. Veriyi erkenden doğrulayın

Eskiden veriyi iş mantığımın (business logic) içinde doğrularım. Bu durum, hatanın kaynağının çok uzağında hatalara yol açıyordu.

Artık hatalı istekleri anında sonlandırıyorum.

Eğer bir istek geçerli bir e-posta içermiyorsa, hemen bir 400 hatası döndürün. Hatalı verinin ana mantığınıza ulaşmasına izin vermeyin.

  1. Belirli hata kodları kullanın

Genel bir 500 hatası kimseye yardımcı olmaz.

Eğer bir API anahtarı başarısız olursa, 401 hatası döndürün. Eğer kullanıcının kredisi yetersizse, 402 hatası döndürün.

Bir hatayı Slack üzerinden açıklamanız gerekiyorsa, API mesajınız başarısız olmuş demektir.

  1. Middleware sıralamanızı kontrol edin

Kimlik doğrulama (authentication) sorunlarını ayıklamak için saatler harcadım. Sorun sadece middleware sıralamamdan kaynaklanıyordu.

Şu sırayı takip edin:

Tek bir yanlış satır her şeyi bozar.

  1. Doğru verileri loglayın

Birçok loglama stili denedim. Çoğu işe yaramazdı.

Standart takip için; metodu, yolu (path) ve durum kodunu (status code) loglayın.

Hatalar için; istek kimliğini (request ID), hata mesajını ve stack trace'i loglayın.

Gece saat 3'te uyandığınızda, geri kalan her şey sadece gürültüdür.

  1. Hız sınırları (rate limits) belirleyin

Bir endpoint'e o kadar yoğun saldırı yapıldığını gördüm ki, bu gerçek paraya mal oldu.

Sınırları olmayan bir API, umuda güvenir. Umut, bir güvenlik stratejisi değildir.

Sunucunuzu korumak için express-rate-limit kullanın.

API hatalarının çoğu temel kuralların göz ardı edilmesinden kaynaklanır.

Production sizin planlarınızı umursamaz. Sadece kurulumunuzu (setup) umursar.

Kaynak: https://dev.to/manolito99/5-production-mistakes-that-changed-how-i-build-express-apis-133e