Skip to content

M07 · Bab 6± 50 menitDraf AI

DTO dan Validasi

Tujuan belajar

  • Menjelaskan kenapa API memakai DTO alih-alih mengekspos objek domain/entity
  • Membuat request & response DTO dengan record dan memetakannya ke domain secara manual
  • Memvalidasi input dengan Bean Validation (@NotBlank, @Size, @Positive, @Email) dan @Valid, termasuk objek bersarang
  • Membuat constraint kustom sederhana dengan ConstraintValidator
  • Membedakan validasi format (di DTO) dan validasi bisnis (di service), serta memahami respons 400 bawaan

Prasyarat: REST Controller

Kuis

5 soal · lulus bila minimal 70% benar

1.Field @NotBlank String name menerima nilai " " (tiga spasi). Apa hasilnya, dan bagaimana dengan @NotEmpty serta @NotNull?
2.Body {"customerId":5,"items":[{"sku":"KOP-0250","quantity":0}]} dikirim ke endpoint create(@Valid @RequestBody OrderRequest request). OrderRequest punya field @NotEmpty List<OrderItemRequest> items, dan OrderItemRequest punya @Positive int quantity. Apa yang terjadi?
3.Aturan "SKU tidak boleh sudah terdaftar di katalog" sebaiknya diletakkan di mana?
4.Kenapa mengembalikan objek domain Customer (berisi passwordHash dan internalNote) langsung dari controller dianggap buruk?
5.Kamu menambahkan @NotBlank di field DTO dan @Valid di parameter @RequestBody, tetapi request dengan nama kosong tetap lolos ke service. Penyebab paling mungkin?

Jawab semua soal dulu (0/5)