Schema lo phần kiểu và tính bắt buộc, còn luật nghiệp vụ nằm ở business logic. Hệ kiểu không diễn tả được các luật như số tiền phải dương, mã giảm giá còn hiệu lực, hay ngày kết thúc phải sau ngày bắt đầu.
Cách trả lỗi cũng là quyết định thiết kế: trả trong mảng errors kỹ thuật thì client khó xử lý theo từng field; trả trong kiểu payload với mảng errors có mã và tên field thì client hiển thị được lỗi ngay cạnh ô nhập tương ứng.
Nguyên tắc nên giữ: kiểm tra ở client là để giúp người dùng sửa nhanh, còn server vẫn phải kiểm tra lại toàn bộ vì client có thể bị bỏ qua bằng cách gọi API trực tiếp.