Skip to content

İstek / Yanıt Sözleşmesi

Ortak yanıt gövdesi

backend/src/utils/response.util.ts:

export interface ApiResponseBody {
  success: boolean;
  message: string;
  [key: string]: unknown;
}
Yardımcı Ürettiği gövde
sendSuccess(res, status, message, payload) { success: true, message, ...payload }
sendError(res, status, message) { success: false, message }

Gerekçelendirilmiş istisna

Sağlık ucu ortak sendError yerine kendi gövdesini kurar; çünkü sözleşmesi ayrıca status ve database alanlarını içerir. Bu istisna kaynak dosyada yorumla gerekçelendirilmiştir.

İstek gövdesi

  • Content-Type: application/json
  • Genel sınır 100 kb (express.json({ limit: '100kb' }))
  • Yükleme yolları istisnadır: PLATFORM_UPLOAD_BODY_LIMIT kullanılır
  • express.urlencoded({ extended: false, limit: '100kb' }) da etkindir

İstek kimliği

requestId middleware'i her isteğe randomUUID() ile bir kimlik verir, X-Request-Id yanıt başlığına yazar ve req.requestId alanına koyar.

Gelen X-Request-Id benzeri bir başlık bilerek dikkate alınmaz — aksi hâlde istemci kimlik çakıştırabilir veya başka bir isteğin kimliğini taklit edebilirdi. Bu değer platform-logs belgelerine request_id olarak yazılır.

Güvenlik başlıkları

helmet() etkindir ve x-powered-by başlığı kapatılmıştır.

İstemci IP'si

app.set('trust proxy', env.trustProxy); varsayılan false. Yani X-Forwarded-For başlığına güvenilmez, IP doğrudan soketten okunur. Böylece hem hız sınırı hem de denetim kaydındaki ip_address alanı taklit edilemez. Gerçek bir ters vekil arkasında TRUST_PROXY değişkeni kullanılır.