๐[DRF] Django Rest Framework(DRF)???
Django Rest Framework (DRF)
DRF
๋ Django๋ฅผ ์ฌ์ฉํด RESTful API
๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด ๋ฑ์ฅํ ํ๋ ์์ํฌ์!
๊ธฐ์กด์ Django๋ ํ์คํ ํ๋ ์์ํฌ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ฃผ์ ๋ชฉ์ ์ธ ํ๋ ์์ํฌ๋ผ๋ฉด, DRF๋ ๋ฐฑ์๋ ํ๋ ์์ํฌ๊ฐ ์ฃผ์ ๋ชฉ์ ์ธ ํ๋ ์์ํฌ๋ผ๊ณ ํ๋ค!
RESTful API?
RESTful API
๋,HTTP Method๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ์น ํต์ ์ธํฐํ์ด์ค์.
RESTful ํ๊ธฐ ์ํด์๋ ๋ช ๊ฐ์ง ์ฃผ์ ์์น์ด ์๋ค.
- ํด๋ผ์ด์ธํธ-์๋ฒ ๊ตฌ์กฐ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง๋ฅผ ๋ถ๋ฆฌํ๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ก ๊ตฌ์ฑ๋จ
- ๋ฌด์ํ
- ๋ชจ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์๋ฒ๊ฐ ์์ฒญ์ ์ดํดํ๊ณ ์๋ตํ ์ ์๋ ๋ชจ๋ ํ์ํ ์ ๋ณด๋ฅผ ํฌํจํด์ผ ํจ
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ํ ์ ๋ณด๋ฅผ ๋ณด๊ดํ์ง ์๋๋ค.
- ์บ์ ๊ฐ๋ฅ
- ์๋ฒ ์๋ต์ ๋ช ์์ ์ผ๋ก ์บ์๊ฐ ๊ฐ๋ฅํ๊ฑฐ๋ ๋ถ๊ฐ๋ฅํจ์ ํ์ํด์ผ ํจ
- ๊ณ์ธตํ ์์คํ
- ํด๋ผ์ด์ธํธ๋ ๋ณดํต ์ต์ข ์๋ฒ์ ์ง์ ํต์ ํ๋์ง, ์ค๊ฐ ๋ ์ด์ด๋ฅผ ํตํด ์ฐ๊ฒฐ๋๋์ง ์ ์ ์์
- ๊ณ์ธตํ๋ฅผ ํตํด ์์คํ ์ ํ์ฅ์ฑ์ ์ฆ๊ฐ์ํฌ ์ ์์
- ์ฝ๋ ์จ ๋๋งจ๋
- ์๋ฒ๋ ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ํด๋ผ์ด์ธํธ์ ์ ์กํ ์ ์์
- ์ด๋ก ์ธํด ํด๋ผ์ด์ธํธ์ ๊ธฐ๋ฅ์ ์ผ์์ ์ผ๋ก ํ์ฅ ๊ฐ๋ฅ
- ์ผ๊ด๋ ์ธํฐํ์ด์ค
- ํต์ ์ ๋จ์์ฑ์ ์ํด API๋ ์์ ์งํฅ์ ์ด์ด์ผ ํจ โ ์์๊ณผ ๊ทธ์ ๋ํ ํ๋์ ๋ช ํํ๊ฒ
๋ํ์ ์ธ HTTP Method
GET
- ์์์ ์กฐํํจ
POST
- ์์์ ์์ฑํจ
PUT
- ์์์ ์์ ๋ฐ ๊ฐฑ์ ํจ
DELETE
- ์์์ ์ญ์ ํจ
์ฌ์ฉ ๋ฐฉ๋ฒ
1. DRF ์ค์น
pip install djangorestframework
2. settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework', # ์ถ๊ฐ๋ ๋ถ๋ถ
]
DRF๋ Serializer๋ฅผ ์ฌ์ฉํ๋ค!
REST API๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์๋ Serializer
๊ฐ ํ์ํจ.
Serializer๋ ์ง๋ ฌํ
ํ๋ค๋ ์๋ฏธ๋ก, request๋ก ๋ค์ด์จ ๋ฐ์ดํฐ๋ฅผ JSON ํํ๋ก ์ง๋ ฌํ ํ๊ฑฐ๋, JSON ํํ์ ๋ฐ์ดํฐ๋ฅผ ์๋ณธ ๋ฐ์ดํฐ๋ก ์ญ์ง๋ ฌํ ํ๋ ๋ฐ์ ์ฌ์ฉ๋๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ