<aside>
</aside>
μλ νμΈμ! FastAPI 2λΆ 'μλ΅ μ²λ¦¬ μ¬ν'μ μΈ λ²μ§Έ μκ°, 12κ°μ λλ€! π
μ§λ 10κ°κ³Ό 11κ°μμλ response_model
μ μ¬μ©νμ¬ JSON μλ΅ κ΅¬μ‘°λ₯Ό μ μ΄νκ³ , HTMLResponse
, RedirectResponse
λ± λ€μν νμμ μλ΅μ λ°ννλ λ°©λ²μ λ°°μ μ΅λλ€. APIκ° λ νλΆν λ°©μμΌλ‘ μν΅ν μ μκ² λμμ£ !
μ΄λ² μκ°μλ HTTP μλ΅μ λ λ€λ₯Έ ν΅μ¬ μμμΈ **μν μ½λ(Status Code)**μ λν΄ λ κΉμ΄ μμλ΄ λλ€. ν΄λΌμ΄μΈνΈμκ² μμ² μ²λ¦¬ κ²°κ³Όλ₯Ό μλ €μ£Όλ μ±μ νμ κ°μ μν μ½λλ₯Ό μ΄λ»κ² FastAPIμμ ν¨κ³Όμ μΌλ‘ μ€μ νκ³ κ΄λ¦¬νλμ§ λ°°μ°κ³ , μλ΅ κ°μ²΄λ₯Ό μ§μ μ μ΄ν λμ μλ―Έμ μ£Όμμ κΉμ§ μ΄ν΄λ³΄κ² μ΅λλ€. APIμ λͺ νμ±μ ν λ¨κ³ λ λμ¬λ΄ μλ€! π―
μ΄λ² 12κ°μμλ HTTP μλ΅μ ν΅μ¬ μ λ³΄μΈ **μν μ½λ(Status Code)**λ₯Ό FastAPIμμ μ μ΄νλ λ€μν λ°©λ²μ νμ΅ν©λλ€. μν μ½λλ ν΄λΌμ΄μΈνΈμκ² μμ² μ²λ¦¬ κ²°κ³Όλ₯Ό κ°κ²°νκ³ λͺ
ννκ² μ λ¬νλ νμ€μ μΈ λ°©λ²μ
λλ€. FastAPIλ κΈ°λ³Έμ μΌλ‘ μ±κ³΅ μ 200 OK
λ₯Ό λ°ννμ§λ§, 리μμ€ μμ±(POST)μ΄λ μμ (DELETE) λ±μ μμ
μλ κ°κ° 201 Created
λ 204 No Content
μ κ°μ λ μ μ ν μν μ½λλ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
μ΄ κ°μμμλ κ²½λ‘ μλ λ°μ½λ μ΄ν°μ status_code
λ§€κ°λ³μλ₯Ό μ¬μ©νμ¬ κΈ°λ³Έ μ±κ³΅ μν μ½λλ₯Ό μ§μ νλ λ°©λ²μ λ°°μ°κ³ , fastapi.status
λͺ¨λμ νμ©νμ¬ κ°λ
μ±μ λμ΄λ λ°©λ²μ μμλ΄
λλ€. λν, 11κ°μμ λ°°μ΄ Response
κ°μ²΄λ₯Ό μ§μ λ°ννλ λ°©μμ ν΅ν΄, ν¨μ λ΄μ λ‘μ§μ λ°λΌ λμ μΌλ‘ μν μ½λλ₯Ό κ²°μ νκ³ λ°ννλ λ°©λ²λ μ΄ν΄λ΄
λλ€. λ§μ§λ§μΌλ‘, Response
κ°μ²΄λ₯Ό μ§μ λ°νν λ FastAPIμ μλ λ³ν λ° μ ν¨μ± κ²μ¬ κΈ°λ₯μ΄ μ΄λ»κ² λμνλμ§(λλ λμνμ§ μλμ§) κ·Έ μλ―Έμ μ£Όμμ μ λͺ
νν μ΄ν΄ν©λλ€.
μ΄ κ°μλ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ€μμ ν μ μκ² λ©λλ€:
status_code
λ§€κ°λ³μλ₯Ό μ¬μ©νμ¬ APIμ κΈ°λ³Έ μ±κ³΅ μν μ½λλ₯Ό μ€μ ν μ μμ΅λλ€.fastapi.status
λͺ¨λμ μμλ₯Ό νμ©νμ¬ μν μ½λλ₯Ό λͺ
μμ μΌλ‘ ννν μ μμ΅λλ€.Response
κ°μ²΄λ₯Ό μ§μ λ°ννμ¬ μν μ½λλ₯Ό λμ μΌλ‘ μ μ΄ν μ μμ΅λλ€.Response
κ°μ²΄λ₯Ό μ§μ λ°νν λ FastAPIμ μλ λ³ν, μ ν¨μ± κ²μ¬, λ¬Έμν κΈ°λ₯μ΄ **μ°ν(bypass)**λλ κ²μ μ΄ν΄νκ³ κ·Έ μ₯λ¨μ μ μ€λͺ
ν μ μμ΅λλ€.