2. Json schema validator : Zod
이 문서는 REST API로부터 받은 JSON 데이터의 유효성을 검사하기 위한 필수 패키지인 Zod의 사용법을 안내합니다.
설치
Zod는 runtime dependency로 사용하므로 --save-dev가 아닌 바로 install 합니다.
pnpm add zod사용
import { z } from 'zod';
const productJson = {
name: 'jeans',
price: 100,
};
const productSchema = z.object({
name: z.string(),
price: z.number().positive(), // 양수, 음수 구별 가능
});
// type Product = z.infer<typeof productSchema>;
const Test1 = () => {
const validateProduct = productSchema.safeParse(productJson);
console.log('validateProduct', validateProduct);
if (validateProduct.success === false) {
console.error(validateProduct.error.message);
return;
}
return <div>Test1</div>;
};
export default Test1;1
테스트
이제 위에 하드코딩된 Json의 name을 → id 로 변경해주면 콘솔 출력은 다음과 같이 됩니다:
validateProduct { success: false, error: [Getter] }
ZodError 예시: { "code": "invalid_type", "expected": "string", "received": "undefined", "path": [ "name" ], "message": "Required" }
validateProduct.success는 false가 되고, Required 필드인 name이 invalid type이라고 표시됩니다.
마지막 업데이트