django-rest-framework ๋ฅผ ์ฌ์ฉํ์ง์์ ํ๋ก์ ํธ์ ๋๋ค. Python3, Django 2.0 ์ค์น๋์ด์๋ค๋ ๊ฐ์ ํ์ ์์ฑํ์์ต๋๋ค.
- Repository clone ๋ฐ DB migrate
git clone https://github.com/sprumin/django-rest-api.gitpython manage.py makemigrationspython manage.py migrate
- KEY ์์ฑ/์กฐํ/์ญ์
python manage.py keymanager- ์์ฑ : add ๋ช ๋ น์ด ์ ๋ ฅ ํ name ์ ๋ ฅ
- ์กฐํ : show ๋ช ๋ น์ด ์ ๋ ฅ
- ์ญ์ : delete ๋ช ๋ น์ด ์ ๋ ฅ ํ name ์ ๋ ฅ
- ์ค์ง : exit ๋ช ๋ น์ด ์ ๋ ฅ or Ctrl + C
- Django Server ์คํ
python manage.py runserver
๊ธฐ๋ณธ์ ์ธ ์ธํ ์ ๋๋ง์ณค์ผ๋ API๋ฅผ ์ฌ์ฉํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ํ ์คํธ๋ Advanced REST Client ๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. ( ๋๋ POSTMAN )
Request์ header์ {"AUTHORIZATION": "your-api-key"} ๋ฅผ ์ฝ์ ํด์ผํฉ๋๋ค.
-
GET
- http://127.0.0.1:8000/user
- ํ์ฌ DB์ ์ ์ฅ๋ ์ ์ ๋ค์ ๋ชฉ๋ก์ ์กฐํํฉ๋๋ค.
- http://127.0.0.1:8000/user/N
- DB์ ์ ์ฅ๋ ์ ์ ๋ค์ค idx๊ฐ N์ธ ์ ์ ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
-
POST
-
{ "email": "your@email.com", "username": "your name", "info": "your info", "password1": "your password", "password2": "your password confirmation" } -
์ ์์์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด ์ ์ ๊ฐ ์์ฑ๋ฉ๋๋ค.
-
PUT
-
DB์ ์ ์ฅ๋ ์ ์ ๋ค์ค idx๊ฐ N์ธ ์ ์ ์ ์ ๋ณด๋ฅผ ์์ ํฉ๋๋ค.
-
{ "email": "your@email.com", "username": "your name", "info": "your info", "password1": "your password", "password2": "your password confirmation" } -
์ ์์์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด ์ ์ ์ ์ ๋ณด๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค.
-
DELETE
-
DB์ ์ ์ฅ๋ ์ ์ ๋ค์ค idx๊ฐ N์ธ ์ ์ ์ ์ ๋ณด๋ฅผ ์ญ์ ํฉ๋๋ค.
-
์ ์์์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด ์ ์ ์ ์ ๋ณด๊ฐ ์ญ์ ๋ฉ๋๋ค.
- ์์ค ์์ฑ ํ ์ปค๋ฐ
- API KEY ์์ฑ/์กฐํ/์ญ์ ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ API Request ์ Key ๊ฒ์ฌ
- API KEY ์ธ์ฆํค ์ ์ก ๋ฐฉ๋ฒ body์์ header๋ก ๋ณ๊ฒฝ
-
header์ authorization ์ฝ์ ํ ์ ์ก ์ ์ผ์ ํ๋ฅ ๋ก 0 request error ๋จ๋ ๋ฒ๊ทธ์ผ์์ ์ธ ๋ฒ๊ทธ์์ - API KEY ์ธ์ฆ decorator ์์ฑ
- Query ์ต์ ํ
- DRF ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ