İ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_LIMITkullanı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.