Django REST Framework
MVTλ?
Model: λ°μ΄ν° ꡬ쑰ν
View: λ°μ΄ν°κ° νλ¬λ€λλ κ³³
Template: λ°μ΄ν°λ₯Ό νμνλ κ³³
API λ?
Application Programming Interface
κ°λ°μμ© μ μ
κ°λ°μλ Dataλ§ νμν¨!
Request
: μμ²μ URLλ‘ λ³΄λΈλ€!
Dataμ νκΈ°λ²
: μ½μ
JSON
JavaScript Object Notation
Javascript κ°μ²΄μ νκΈ°λ²
XML
eXtended Markup Language (W3C, 1996)
Why not HTML?
: keyκ°μ΄ λ°μμ΄ μ λ¨!
κ·Έλμ λ±μ₯ν κ²μ΄
tagλ₯Ό λ΄λ§λλ‘ μ μν μ μλ XML
Why JSON
XMLμ΄ λ«λ tag λλ¬Έμ κΈΈμ΄κ° κΈΈλ€
λ
μ°λ¦¬κ° ν μΌ
: Django μμ JSON νμμ λ§μΆ°μ Dataλ§ μ 곡νλ€!
JSON ... κ·Έλ¦¬κ³ λμλ?

Javscript & framewokrλ₯Ό λΆλ¦¬νλ μ΄μ
μ’μ μ μ κ²½νμ μν΄μ
UX μ μ’μΌλ©΄ -> User X -> λ X
data -> μΈκ°μ΄ λ μ’μν κΉ?
λͺ¨λ°μΌ μ΄ν리μΌμ΄μ (μΉ)
churn (μ΄νμ¨)
JS νμ (Adobe Flash)
λΆλ¦¬λμ΄ μλ κ²μ΄ νΈν΄μ
Django λ€μ κΉκΈ°
Faker μ¬μ©νκΈ°
faker μ€μΉ
Dummy data λ§λ€κΈ°
RESTful API
https://meetup.toast.com/posts/92 μ°Έκ³ νκΈ°
: urlμ κΉλνκ² μ 리νλ λ°©μ (곡ν΅μ rule / μ½μ)
RESTful
HTTP verb (GET, POST)
λͺ μ¬ (볡μν)λ‘ κ΅¬μ
κ·μΉλ€
λμ¬ URLμ μ§μ΄ λ£μ§λ§! ->
HTTP methodνμ©ν΄C (POST)
(POST) / articles /
R (GET)
index (λͺ¨λ μ 보) -
(GET) / articles /detail (νλμ μ 보) -
(GET) / articles / <id>
U (PUT/PATCH)
(PUT) / articles / <id>
D (DELETE)
(DELETE) / articles / <id>
λͺ©μ μ΄λ§ URLμ μ§μ΄ λ£μ΄ -> 볡μνμΌλ‘
Data
API κ΄λ ¨ URL
subdomain
ex)
lab.ssafy.com
api.gitbub.com
λΆλ¦¬ URL /api/
ssafy.com/api/lectures/
github.com/api/repos/
versionning
ssafy.com/api/v1/lectures/
POST /api/articles/1/like/
POST /api/articles/1/comments/like/
Django REST Framework (DRF)
djangorestframework μ€μΉ
μ€μΉλμ΄ μλμ§ νμΈ
Serialize (μ§λ ¬ν)
ν¬λ§·μ λ³ν (λ°μ΄ν°λ₯Ό μ μ‘/μ΄λ)
dict -> JSON (stringify, serialize)
JSON -> dict (parse, deserialize)
μ§λ ¬ν
: Object(μΈμ΄, database) -> String (JSON)
CREATE

raise_exceptionμΌλ‘ Error μμκ² μΆλ ₯νκΈ°
raise_exceptionμΌλ‘ Error μμκ² μΆλ ₯νκΈ°ex)
νλλ§ λ³΄λ

μλ¬λ©μμ§

yasg
API κ΄λ ¨ λ¬Έμλ₯Ό μλμΌλ‘ μμ±
DRF yasg μ€μΉνκΈ°
Dummy data JSON μΌλ‘ λΆλ¬μ€κΈ°
fixtures ν΄λμ dummy.json λ£κΈ°
dummy.json λ£κΈ°loaddata λ‘ dummy.json μ DBμ λ£κΈ°
loaddata λ‘ dummy.json μ DBμ λ£κΈ°dumpdata λ‘ DBμ μλ data dumping νκΈ°
dumpdata λ‘ DBμ μλ data dumping νκΈ°dumpdataλ‘ dumping ν dataλ₯Ό JSON fileλ‘ λ§λ€κΈ°
dumpdataλ‘ dumping ν dataλ₯Ό JSON fileλ‘ λ§λ€κΈ°μ΄λ κ² νλ©΄ λ€λ₯λ€λ₯ λΆμ΄μμ
indenting μ€μ μμκ² λ§λ€κΈ°
--indent 2-> indentingμ 2 μ€λΌ
result
Last updated
Was this helpful?