Ishga tayyor · Production REST API kontrakti
Daraja: O'rta
Resource modeli, status kod, validation, pagination va barqaror xato formati.
Tushuntirish
## Ishdagi vazifa Frontend va boshqa servislar taxmin qilmaydigan API yaratish. URL resource-ni, HTTP method amal ma’nosini ifodalaydi. Request va response entity emas, alohida DTO bo‘ladi. Validation chegarada ishlaydi; biznes xatosi va texnik xato bir xil 500 bo‘lib ketmaydi.
## Bilish kerak Create odatda 201 va Location, muvaffaqiyatli body-siz delete 204 qaytaradi. Noto‘g‘ri input 400, autentifikatsiya yo‘q 401, huquq yetarli emas 403, topilmadi 404, conflict 409 bo‘lishi mumkin. Katta ro‘yxat pagination, deterministik sort va maksimal size talab qiladi. Error response request trace ID bilan kuzatiladi.
## Ishga tayyor mezon OpenAPI va integration test bir xil contractni isbotlaydi.
Kod misoli
record CreateOrderRequest(@jakarta.validation.constraints.NotEmpty
java.util.List<Long> productIds) {}
// POST /api/v1/orders -> 201 Created
// GET /api/v1/orders?page=0&size=20&sort=createdAt,desc
Keng tarqalgan xatolar
- JPA entityni to‘g‘ridan-to‘g‘ri JSON qilib ichki schema va lazy relationlarni ochib yuborish.
Mashqlar
- Order API uchun happy path va beshta xato contractini yozing.
- Pagination size uchun server limit qo‘ying va test qiling.
Teglar: career-02, rest, ishga-tayyor, spring