Sunday_August_9
.
.
.
์์ ์งง๊ณ ๊ฐ๋ตํ๊ฒ RESTful์ ๋ํด ์์ฑ์ ํ์ง๋ง,
๋ฉํ ๋์ ์ธ์
์ ๋ฃ๊ณ ๋๋ฌด ์ฌ๋ฐ๊ณ ์ฝ๊ฒ ์๋ฟ์์ ๋ค์ ์จ๋ณด๋ ค๊ณ ํ๋ค.
(์ฌ์ค ๊ทธ ์ ์๋ ์ ๋ชฐ๋์๋ค ใ
)
url๋ ๋ฉ์๋(๋์ฌ)์ ์์(๋ช ์ฌ)๋ก ์ด๋ฃจ์ด์ง๋ค.
๋ฉ์๋(๋์ฌ)๋ค
๋ณด๊ณ ์ถ์ผ๋ฉด GET
์ถ๊ฐํ๊ณ ์ถ์ผ๋ฉด POST
์ญ์ ํ๊ณ ์ถ์ผ๋ฉด DELETE
์์ ํ๊ณ ์ถ์ผ๋ฉด PUT/PATCH (๋์ ์ฐจ์ด๋ ์๋์์)
url์ ์๋ํฌ์ธํธ๋ฅผ ํฅํด ๊ฐ๋ ์ฃผ์์ด๋ค.
ํ๋ก ํธ์์ ๋ง๋๋ ์นํ์ด์ง ๊ธฐ์ค์ด ์๋๋ผ ๋ฆฌ์์ค๊ธฐ์ค์ด ๋์ด์ผํ๋ค.
์ํ์ ๊ฑด๋๋ฆฌ๋ ๊ฑฐ๋ฉด url์ด product๊ฐ ๋์ด์ผ ํ๊ณ
์ฌ์ฉ์๋ฅผ ๊ฑด๋๋ฆฌ๋ฉด url์ user,
๋ฆฌ๋ทฐ๋ฅผ ๊ฑด๋๋ฆฌ๋ฉด url์ review๊ฐ ๋์ด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด ๊ฐ์ ์์์ ๊ฑด๋๋ฆฌ๋ ์๋ํฌ์ธํธ๋ผ๋ฉด
์ํ์ ๋์ดํ๋ค๋๊ฐ, ์กฐ๊ฑด์ ์ฃผ์ด์ ํํฐ๋ง์ ํ๋ค๋๊ฐ, ํน์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ ํ๋ค๋๊ฐ ๋ฑ.
์๋ํฌ์ธํธ๋ ํ๋์ด๊ณ ๋ฉ์๋๊ฐ ๋ฐ๋๋ ๊ฒ์ด๋ค.
๊ทธ๋ฅ ์ํ์ ๋ณด๋ url์
get product์ด๊ณ์ํ์ ์ถ๊ฐํ๋ url์
post product์ด๋ค.๋ง์ฝ ์ํ์ ์์ ํ๋ url์
put/patch product ์ด๋ค.
๋ฌผ๋ก ์ด๋ค ์ํ์ ์์ ํ ์ง๋ ์๋ ค์ฃผ์ด์ผ ํ๋ค.put/patch product/3 (๋ง์ฝ 3๋ฒ ์ํ ์ด์๋ค๋ฉด)
์ด๋ ๊ฒ ๋ง์ด๋ค.๊ทธ๋ฆฌ๊ณ ๋ 6๋ฒ์ ์ํ์ ์ญ์ ํ๊ณ ์ถ๋ค๋ฉด
delete product/6
์ด๋ ๊ฒ ์จ์ฃผ๋ฉด ๋๋ค.์ด๋ ๊ฒ ๊ฐ์ product๋ผ๋ ์์์ ๊ฑด๋๋ ธ๊ณ ์๋ํฌ์ธํธ๋ ํ๋์๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๋ง์ฝ ์ด๋ ํ ์ํ์ ๋ณด๋ ค๊ณ ํ๋ค๋ฉด url์
get http://127.0.0.1:8000/product/1
์ด๋ฐ์์ ๋ณผํ ๋ฐ, ํ๋์ฝ๋ฉ์ผ๋ก ํญ์ 1, 2, 3... ์ด๋ ๊ฒ ๋ง๋ค์ด ์ค ์๋ ์๋ค.์ฅ๊ณ ์ urls.py์์ ๊ฒฝ๋ก๋ก (ํ๋ก์ ํธ urls.py์ product๋ฅผ ์ฃผ์๋ค๋ ๊ฐ์ ํ์)
path('/1', ์๋ต),
path('/2', ์๋ต) ์ด๋ ๊ฒ ๋๊ฐ๋ ๊ฒ์ด ์๋๋ผ
path('/<int:product_id>', ์๋ต) ์ด๋ ๊ฒ ๋๊ฐ๋ ๊ฒ์ด๋ค.
get http://127.0.0.1:8000/product/main_page_product
๋ฉ์ธ ํ์ด์ง์๋ ์ฌ๋ฌ๊ฐ์ง์ ์ ๋ณด๊ฐ ์ฌ ์ ์๋ค.
์๋ฅผ ๋ค์ด user์ ๋ณด์ product์ ์ ๋ณด๊ฐ ๋ฉ์ธ ํ์ด์ง์์ ๋์จ๋ค๋ฉด,
user์ product๋ผ๋ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ง ์๋ํฌ์ธํธ 2๊ฐ๋ฅผ ๋์์ ํธ์ถํด์ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด
get http://127.0.0.1:8000/user
get http://127.0.0.1:8000/product
์ด๋ ๊ฒ 2๊ฐ์ ์๋ํฌ์ธํธ๋ฅผ ๋์์ ํธ์ถํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
get http://127.0.0.1:8000/store/find_store
๋ฑ ๋ณด๋๊น ์ด๋ ํ store๋ฅผ ์ฐพ๊ณ ์ถ์๋ฏ ํ๋ค.
ํ์ง๋ง ์์์ ๋งํ๋ฏ get์ด๋ผ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ , store๋ผ๋ ์์(๋ฆฌ์์ค)์ ์ ๊ทผ์ ํ๋ค. ๋ฐ๋ผ์ find_store๋ผ๊ณ ์ฐ๋ฉด ์๋๋ค.
์์ธ์ ์๋ ๋งค์ฅ์ ๊ฒ์ํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ๋๋ค.
์ผ๋จ ์กฐ๊ฑด์ ์ฃผ์ด์ผ ํ๋ค.
get http://127.0.0.1:8000/store?district='seoul'
get http://127.0.0.1:8000/store?city='seoul'
๋ฑ์ผ๋ก ์ฃผ๋ฉด ๋๋ค.
post http://127.0.0.1:8000/product/add_first_item_information?name='jacket'&category='dress'
์ด์ ๋ฌธ์ ์ ์ด ๋์ ๋ณด์ผ ๊ฒ์ด๋ค.
๋ฑ ๋ด๋ ์ฒซ ๋ฒ์งธ ์์ดํ ์ ์นดํ ๊ณ ๋ฆฌ๋ ๋๋ ์ค, ์ด๋ฆ์ ์์ผ์ผ๋ก ์ํ์ ์ถ๊ฐํ๋ค๋๊ฒ ๊ฐ๋ค.
post http://127.0.0.1:8000/product
์ด๋ ๊ฒ ํ ํ,
body์๋ค๊ฐ ๋ด๋ถ์ json์ ํํ๋ก{ "name":"jacket", "category":"dress" }
์ด๋ ๊ฒ ์ฃผ๋ฉด ๋๋ค.
post http://127.0.0.1:8000/store/search_store?name='๊ฐ๋จ'
์ด๊ฒ ๋ํ ๊ฐ๋จ์ ์๋ ๋งค์ฅ์ ์ฐพ๊ณ ์ถ์๋ ๋ฏ ํ๋ค.
์ผ๋จ ๋งค์ฅ์ ์ฐพ์์ ๋ณด๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฉ์๋๋ post๊ฐ ์๋ get์ด ๋์ด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ตณ์ด ํ์์๋ search_store๋ผ๋ ๋ถ๋ถ, ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์์์ store๋ผ๋ ๋ฆฌ์์ค(์์)์ ์ธ๊ธํ๊ธฐ ๋๋ฌธ์ ์ ๋ ๊ฒ ๊น์ง ์๋ ค์ค ํ์๋ ์๋ค.
๋ฐ๋ผ์ ์ฌ๋ฐ๋ฅธ rest๊ท์น์ ์ฌ์ฉํ๋ฉด ๋ค์ ๊ฐ์ด ๋ํ๋ผ ์ ์๋ค.
get http://127.0.0.1:8000/store?name=๊ฐ๋จ'
์งง๊ณ ๊ตต๊ฒ ๋๋ด๊ฒ ๋ค.
๋ง์ฝ ํค ๊ฐ์ด 3๊ฐ๋ผ๊ณ ๊ฐ์ ์ ํ๋ฉด
Put์ 3๊ฐ์ ํค ๊ฐ์ ๋ค ์จ์ฃผ์ด์ผ ํ๊ณ ,
Patch๋ 1๊ฐ ์ด์์ด๋ฉด ๋๋ค.
์ฆ,
Put์ ์ ์ฒด ์์ ์ด๊ณ ,
Patch๋ ์ผ๋ถ ์์ ์ด๋ค.