<aside>
</aside>
μλ νμΈμ! λλμ΄ FastAPI κ°μ 2λΆ: μλ΅ μ²λ¦¬ μ¬νμ 첫 μκ°, 10κ°μ λλ€! π₯³
1λΆμμλ FastAPIμ κΈ°λ³Έμ μΈ μ€μΉλΆν° μμν΄μ λΌμ°ν , μμ² λ°μ΄ν° μ²λ¦¬(κ²½λ‘/쿼리 λ§€κ°λ³μ, μμ² λ³Έλ¬Έ), Pydanticμ μ΄μ©ν λ°μ΄ν° κ²μ¦, μμ‘΄μ± μ£Όμ , λ―Έλ€μ¨μ΄, CORS, μμΈ μ²λ¦¬κΉμ§ μ λ§ λ§μ ν΅μ¬ κ°λ λ€μ λ°°μ μ΅λλ€. μ¬λ¬λΆ μ λ§ λλ¨ν΄μ! π
μ΄μ 2λΆμμλ APIμ λ λ€λ₯Έ μ€μν μΆμΈ **μλ΅(Response)**μ λμ± μΈλ°νκ² λ€λ£¨κ³ μ μ΄νλ λ°©λ²μ λ°°μΈ κ±°μμ. ν΄λΌμ΄μΈνΈμκ² μ΄λ€ λ°μ΄ν°λ₯Ό, μ΄λ€ νμμΌλ‘, μ΄λ€ μν μ½λλ‘ μ λ¬ν μ§ μμ μμ¬λ‘ μ‘°μ νλ κΈ°μ μ μ΅νλ΄ μλ€!
κ·Έ 첫걸μμΌλ‘, μ΄λ² 10κ°μμλ FastAPIκ° κΈ°λ³Έμ μΌλ‘ μ΄λ»κ² μλ΅μ μ²λ¦¬νλμ§(νΉν JSON μλ΅) 볡μ΅νκ³ , response_model
μ΄λΌλ κ°λ ₯ν λꡬλ₯Ό μ¬μ©νμ¬ APIμ μΆλ ₯ λ°μ΄ν° ꡬ쑰(μ€ν€λ§)λ₯Ό λͺ
νν μ μνκ³ , μνλ λ°μ΄ν°λ§ μ νμ μΌλ‘(νν°λ§νμ¬) λ°ννλ λ°©λ²μ μμλ΄
λλ€. μλ΅ λ°μ΄ν°λ₯Ό λμ± κΉλνκ³ μμ νκ² κ΄λ¦¬νλ λΉκ²°μ λ°°μλ΄
μλ€! β¨
μ΄λ² 10κ°μμλ FastAPIκ° κ²½λ‘ μλ ν¨μμμ λ°νλ κ°μ μ²λ¦¬νλ κΈ°λ³Έ λ©μ»€λμ¦, νΉν μλ JSON μλ΅ λ³νμ λν΄ λ³΅μ΅ν©λλ€. λμ
λ리λ 리μ€νΈ, Pydantic λͺ¨λΈ λ±μ λ°ννλ©΄ FastAPIκ° μλμΌλ‘ JSONResponse
ννλ‘ λ§λ€μ΄μ£Όλ νΈλ¦¬ν κΈ°λ₯μ΄μ£ .
νμ§λ§ λλ‘λ APIκ° λ°ννλ λ°μ΄ν°μ ꡬ쑰λ₯Ό λͺ
ννκ² λ¬Έμννκ³ μΆκ±°λ, λ΄λΆμ μΌλ‘ μ¬μ©νλ λͺ¨λ λ°μ΄ν°λ₯Ό μΈλΆμ λ
ΈμΆνμ§ μκ³ νΉμ νλλ§ μ νμ μΌλ‘ 보λ΄κ³ μΆμ λκ° μμ΅λλ€. μ΄λ΄ λ μ¬μ©νλ κ²μ΄ λ°λ‘ κ²½λ‘ μλ λ°μ½λ μ΄ν°μ response_model
λ§€κ°λ³μμ
λλ€.
response_model
μ Pydantic λͺ¨λΈμ μ§μ νλ©΄, FastAPIλ κ²½λ‘ μλ ν¨μκ° κ°μ λ°νν νμ ν΄λΉ λͺ¨λΈ μ€ν€λ§μ λ§μΆ° λ°μ΄ν°λ₯Ό νν°λ§νκ³ μ§λ ¬νν©λλ€. μ΄λ₯Ό ν΅ν΄ λ―Όκ°ν μ 보(μ: λΉλ°λ²νΈ)λ₯Ό μλ΅μμ μλμΌλ‘ μ μΈνκ±°λ, API λ¬Έμμ μ νν μλ΅ μ€ν€λ§λ₯Ό λͺ
μνλ λ±μ μ΄μ μ μ»μ μ μμ΅λλ€. μ΄ κ°μμμλ response_model
μ μλ μ리λ₯Ό μ΄ν΄νκ³ μ΄λ₯Ό νμ©νμ¬ μλ΅ λ°μ΄ν°λ₯Ό ν¨κ³Όμ μΌλ‘ μ μ΄νλ λ°©λ²μ μ€μ΅ν©λλ€.
μ΄ κ°μλ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ€μμ ν μ μκ² λ©λλ€:
dict
, list
, Pydantic λͺ¨λΈ λ±μ μλμΌλ‘ JSON μλ΅μΌλ‘ λ³ννλ κΈ°λ³Έ λμμ μ€λͺ
ν μ μμ΅λλ€.response_model
λ§€κ°λ³μλ₯Ό μ¬μ©νμ¬ APIμ μΆλ ₯ μ€ν€λ§λ₯Ό Pydantic λͺ¨λΈλ‘ λͺ
μμ μΌλ‘ μ μΈν μ μμ΅λλ€.response_model
μ νμ©νμ¬ κ²½λ‘ μλ ν¨μκ° λ°ννλ λ°μ΄ν°μμ **μνλ νλλ§ μ ν(νν°λ§)**νμ¬ μλ΅μ ν¬ν¨μν¬ μ μμ΅λλ€.response_model
μ¬μ©μ΄ **API μλ λ¬Έμ(Swagger UI λ±)**μ μ΄λ»κ² λ°μλμ΄ μλ΅ κ΅¬μ‘°λ₯Ό λͺ
νν 보μ¬μ£Όλμ§ μ΄ν΄ν©λλ€.response_model
μ μν μΆλ ₯ λͺ¨λΈμ ꡬλΆνμ¬ μ μνκ³ μ¬μ©ν μ μμ΅λλ€.