<aside>
</aside>
μλ νμΈμ! μ€μ νλ‘μ νΈ λ€ λ²μ§Έ μκ°μ΄μ, 4λΆμ λ§μ§λ§μΈ 19κ°μ λλ€! π
18κ°μμλ λλμ΄ ToDo 리μ€νΈ APIμ ν΅μ¬ CRUD λ‘μ§μ μΈλ©λͺ¨λ¦¬ λ°©μμΌλ‘ ꡬννμ΅λλ€. μ΄μ μ°λ¦¬ APIλ ν μΌμ μμ±, μ‘°ν, μμ , μμ νλ μ€μ κΈ°λ₯μ κ°μΆκ² λμμ΄μ! (λΉλ‘ μλ²λ₯Ό κ»λ€ μΌλ©΄ λ°μ΄ν°λ μ¬λΌμ§μ§λ§μπ )
νμ§λ§ μ½λλ₯Ό μμ±νλ κ²λ§νΌ μ€μν κ²μ΄ μμ£ ? λ°λ‘ μ λλ‘ μλνλμ§ νμΈνλ κ²μ λλ€! μ΄λ² μκ°μλ μ°λ¦¬κ° λ§λ APIκ° μ€κ³ν λλ‘ μ ννκ² λμνλμ§ ν μ€νΈνκ³ , FastAPIκ° μλμΌλ‘ λ§λ€μ΄μ€ API λ¬Έμλ₯Ό κΌΌκΌΌν μ κ²νλ μκ°μ κ°κ² μ΅λλ€.
FastAPIμ λ΄μ₯ **λνν λ¬Έμ λꡬ(Swagger UI)**λ₯Ό μ¬μ©νμ¬, λ§μΉ APIμ μ€μ μ¬μ©μκ° λ κ²μ²λΌ κ° μλν¬μΈνΈλ₯Ό μ§μ νΈμΆν΄λ³΄κ³ κ²°κ³Όλ₯Ό νμΈν΄ λ³Ό κ±°μμ. λν, λ¬Έμκ° λͺ ννκ³ μ΄ν΄νκΈ° μ½κ² μμ±λμλμ§, λΉ μ§ λΆλΆμ μλμ§ ν¨κ» 리뷰νλ©° APIμ μμ±λλ₯Ό λμ¬λ³΄κ² μ΅λλ€.
μ, μ°λ¦¬κ° λ§λ μνμ μ§μ μ¬μ©ν΄λ³΄κ³ νκ°ν΄ λ³Ό μκ°μ λλ€! π§ͺπ
μ΄λ² 19κ°μμλ 18κ°μμ ꡬνν Task CRUD API κΈ°λ₯μ΄ μ€μ λ‘ μλν λλ‘ λμνλμ§ ν μ€νΈνλ λ° μ€μ μ λ‘λλ€. λ³λμ ν μ€νΈ λꡬλ₯Ό μ€μΉν νμ μμ΄, FastAPIκ° κΈ°λ³ΈμΌλ‘ μ 곡νλ κ°λ ₯ν **λνν API λ¬Έμ(Swagger UI)**λ₯Ό μ¬μ©νμ¬ κ° μλν¬μΈνΈ(μμ±, λͺ©λ‘ μ‘°ν, μμΈ μ‘°ν, μμ , μμ )λ₯Ό μ§μ νΈμΆνκ³ κ·Έ κ²°κ³Όλ₯Ό νμΈνλ λ°©λ²μ λ°°μλλ€. μ±κ³΅μ μΈ μμ²λΏλ§ μλλΌ, μ‘΄μ¬νμ§ μλ IDλ‘ μ‘°ν/μμ /μμ λ₯Ό μλνλ λ± μ€λ₯ μν©μ λν μ²λ¦¬(μ: 404 Not Found μλ΅)λ μ λλ‘ μ΄λ£¨μ΄μ§λμ§ κ²μ¦ν©λλ€.
λμμ, μλμΌλ‘ μμ±λ API λ¬Έμλ₯Ό μ£Όμ κΉκ² κ²ν ν©λλ€. μλν¬μΈνΈ μ€λͺ
, νλΌλ―Έν° μ 보, μμ²/μλ΅ μ€ν€λ§ λ±μ΄ λͺ
ννκ³ μ ννκ² νμλλμ§ νμΈνκ³ , Pydantic λͺ¨λΈ μ μ, ν¨μ λ
μ€νΈλ§(docstring), Field
, Path
λ±μ μμλ€μ΄ λ¬Έμ νμ§μ μ΄λ»κ² κΈ°μ¬νλμ§ λ€μ νλ² μ΄ν΄λ΄
λλ€. λν, 17κ°μμ μ€μ ν tags
μ΅μ
μ΄ λ¬Έμλ₯Ό ν¨κ³Όμ μΌλ‘ κ·Έλ£Ήννλμ§ νμΈν©λλ€. μ΄ κ³Όμ μ ν΅ν΄ μ λ§λ€μ΄μ§ API λ¬Έμμ μ€μμ±μ κΉ¨λ«κ³ , λ¬Έμ νμ§μ κ°μ νλ λ°©λ²μ μ΄ν΄νκ² λ©λλ€.
μ΄ κ°μλ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ€μμ ν μ μκ² λ©λλ€:
/docs
)**λ₯Ό μ¬μ©νμ¬ API μλν¬μΈνΈλ₯Ό λννμΌλ‘ ν
μ€νΈν μ μμ΅λλ€.