μλ¬ μ²λ¦¬ κ°μ
μΌκ΄λ μλ΅
νμ€νλ μλ¬ νμ ν΄λΌμ΄μΈνΈ μΉνμ
μν μ½λ
HTTP μν μ½λ RESTful νμ€
λͺ νν λ©μμ§
κ°λ°μ μΉνμ μ¬μ©μ μΉνμ
λ‘κΉ
μλ¬ μΆμ λλ²κΉ
μ§μ
SoException
SonamuλSoException κΈ°λ°μ μλ¬ ν΄λμ€λ₯Ό μ 곡ν©λλ€. SoExceptionμ throwνλ©΄ νλ μμν¬κ° μλμΌλ‘ μ μ ν HTTP μν μ½λμ ꡬ쑰νλ μλ¬ μλ΅μ μ μ‘ν©λλ€.
κΈ°λ³Έ μ¬μ©λ²
μ 곡λλ μμΈ ν΄λμ€
Sonamuκ° κΈ°λ³ΈμΌλ‘ μ 곡νλ μμΈ ν΄λμ€μ λλ€. λͺ¨λSoExceptionμ μμν©λλ€.
SoException μμ±μ
λͺ¨λ μμΈ ν΄λμ€λ λμΌν μμ±μ μκ·Έλμ²λ₯Ό κ°μ§λλ€.message: μλ¬ λ©μμ§. λ€κ΅μ΄ λ¬Έμμ΄(LocalizedString)μ μ§μν©λλ€.payload: μΆκ° μ 보. Zod κ²μ¦ μ΄μ λ°°μ΄ λ±μ μ λ¬ν μ μμ΅λλ€.
μ¬μ© μμ
λ€μν μλ¬ μν©
payloadλ₯Ό νμ©ν μμΈ μ 보 μ λ¬
isSoException νμ κ°λ
Zod κ²μ¦ μλ¬ μ²λ¦¬
BadRequestExceptionμ payloadμ Zod μ΄μ λ°°μ΄μ μ λ¬νλ©΄, Sonamuμ μλ¬ νΈλ€λ¬κ° μλμΌλ‘ κ²μ¦ μλ¬ μμΈ μ 보λ₯Ό μλ΅μ ν¬ν¨ν©λλ€.
Zod μλ¬ λ³ν
μλ¬ μλ΅ νμ
Sonamuμ λ΄μ₯ μλ¬ νΈλ€λ¬λ λ€μ νμμΌλ‘ μλ΅ν©λλ€.κΈ°λ³Έ μλ¬ μλ΅
Zod κ²μ¦ μλ¬ μλ΅ (payloadμ μ΄μ λ°°μ΄ μ λ¬ μ)
μλ¬ νΈλ€λ¬ 컀μ€ν°λ§μ΄μ§
Sonamuλ κΈ°λ³Έ μλ¬ νΈλ€λ¬λ₯Ό λ΄μ₯νκ³ μμ§λ§, νμ μstartServerμ lifecycle.onError μ΅μ
μΌλ‘ 컀μ€ν
μλ¬ νΈλ€λ¬λ₯Ό μ€μ ν μ μμ΅λλ€.
μν μ½λ μ°Έμ‘°ν
νμ€ HTTP μν μ½λ
Sonamu 컀μ€ν μν μ½λ
μ€μ ν¨ν΄
μ£Όμμ¬ν
λ€μ λ¨κ³
μλ κ²μ¦
Zod κΈ°λ° κ²μ¦
컀μ€ν κ²μ¦
컀μ€ν
κ²μ¦ λ‘μ§
@api λ°μ½λ μ΄ν°
API κΈ°λ³Έ μ¬μ©λ²
Context
SonamuContext