<aside>
</aside>
λ€, μ¬λ¬λΆ! μ€μ νλ‘μ νΈμ μΈ λ²μ§Έ μκ°, 18κ°μ μ€μ κ²μ νμν©λλ€! π₯
μ§λ 17κ°μμλ APIRouter
λ₯Ό μ¬μ©νμ¬ ToDo 리μ€νΈ νλ‘μ νΈμ ꡬ쑰λ₯Ό κΉλνκ² μ 리νμ΅λλ€. λͺ¨λΈ, λΌμ°ν°, λ©μΈ μ±μ κ°κ°μ νμΌκ³Ό λλ ν λ¦¬λ‘ λΆλ¦¬νμ£ ? μμ£Ό μ νμ
¨μ΅λλ€! π
μ΄μ λλμ΄! μ°λ¦¬κ° μ€κ³νκ³ κ΅¬μ‘°νν κ·Έ ν μμ μ€μ κΈ°λ₯μ μ±μ λ£μ μκ°μ λλ€. 16κ°μμ μ€κ³νλ Task(ν μΌ)μ λν μμ±(Create), μ‘°ν(Read), μμ (Update), μμ (Delete) - μ¦, CRUD κΈ°λ₯μ λ‘μ§μ μ€μ λ‘ κ΅¬νν΄ λ³Ό κ±°μμ.
μ΄λ² μκ°μλ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©νκΈ° μ λ¨κ³λ‘, μλ²μ λ©λͺ¨λ¦¬ μμ μλ νμ΄μ¬ λμ λ리λ₯Ό μμ λ°μ΄ν° μ μ₯μλ‘ μ¬μ©νμ¬ CRUD κΈ°λ₯μ ꡬνν©λλ€. μλ²λ₯Ό κ»λ€ μΌλ©΄ λ°μ΄ν°κ° μ¬λΌμ§μ§λ§, APIμ ν΅μ¬ λ‘μ§κ³Ό FastAPIμ μ¬λ¬ κΈ°λ₯μ μ€μ λ‘ λμμμΌλ³΄λ μ€μν κ²½νμ΄ λ κ²μ λλ€!
μ, μ΄μ μ§μ§ μ½λ©μ μμν΄λ³ΌκΉμ? π¨βπ»π©βπ»
μ΄λ² 18κ°μμλ μ§λ μκ°μ ꡬ쑰νν app/routers/tasks.py
νμΌμ μ€μ ν μΌ(Task) κ΄λ¦¬ λ‘μ§μ ꡬνν©λλ€.
16κ°μμ μ€κ³ν 5κ°μ§ API μλν¬μΈνΈμ ν΄λΉνλ ν¨μ λ΄λΆμ μ€μ λ°μ΄ν° μ²λ¦¬ μ½λλ₯Ό μμ±ν©λλ€.
μ΄λ² λ²μ μμλ μ€μ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©νλ λμ , Pythonμ **λμ λ리(Dictionary)**λ₯Ό μΈλ©λͺ¨λ¦¬(in-memory) λ°μ΄ν° μ μ₯μλ‘ νμ©νμ¬ λ°μ΄ν°λ₯Ό μμλ‘ μ μ₯νκ³ κ΄λ¦¬ν©λλ€. μλ‘μ΄ Task IDλ₯Ό μμ±νκ³ , λμ λ리μμ λ°μ΄ν°λ₯Ό μΆκ°, μ‘°ν, μμ , μμ νλ λ°©λ²μ λ°°μλλ€.
μ΄ κ³Όμ μμ Pydantic λͺ¨λΈ(TaskCreate
, Task
)μ μ¬μ©νμ¬ μμ² λ°μ΄ν°λ₯Ό λ°κ³ μλ΅ λ°μ΄ν°λ₯Ό ꡬμ±νλ©°, μ‘΄μ¬νμ§ μλ Task IDλ‘ μμ²μ΄ λ€μ΄μ¬ κ²½μ° HTTPException
μ μ¬μ©νμ¬ μ μ ν 404 μ€λ₯λ₯Ό λ°ννλ λ°©λ² λ± μμ λ°°μ΄ κ°λ
λ€μ μ’
ν©μ μΌλ‘ νμ©ν©λλ€.
μ΄ κ°μλ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ€μμ ν μ μκ² λ©λλ€: