HTTP ๋ฉ์๋ ๊ฐ์
GET
๋ฐ์ดํฐ ์กฐํ์์ ํ๊ณ ๋ฉฑ๋ฑ์ฑ
POST
๋ฐ์ดํฐ ์์ฑ๋น๋ฉฑ๋ฑ์ฑ
PUT
๋ฐ์ดํฐ ์์ ๋ฉฑ๋ฑ์ฑ
DELETE
๋ฐ์ดํฐ ์ญ์ ๋ฉฑ๋ฑ์ฑ
GET - ์กฐํ
๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์ฌ์ฉํฉ๋๋ค. ์๋ฒ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.๋จ์ผ ๋ฆฌ์์ค ์กฐํ
๋ชฉ๋ก ์กฐํ
๊ด๊ณ ๋ฐ์ดํฐ ์กฐํ
GET ๋ฉ์๋ ํน์ง:
- ์์ ํจ (Safe): ์๋ฒ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ง ์์
- ๋ฉฑ๋ฑ์ฑ (Idempotent): ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ํด๋ ๊ฒฐ๊ณผ ๋์ผ
- ์บ์ ๊ฐ๋ฅ (Cacheable): ๋ธ๋ผ์ฐ์ /ํ๋ก์์์ ์บ์ ๊ฐ๋ฅ
- ํ๋ผ๋ฏธํฐ๋ URL ์ฟผ๋ฆฌ ์คํธ๋ง์ผ๋ก ์ ๋ฌ
POST - ์์ฑ
์๋ก์ด ๋ฆฌ์์ค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํฉ๋๋ค.๋จ์ ์์ฑ
๋ณต์กํ ์์ฑ (๊ด๊ณ ๋ฐ์ดํฐ ํฌํจ)
๋ฐฐ์น ์์ฑ
POST ๋ฉ์๋ ํน์ง:
- ๋น์์ ํจ: ์๋ฒ ์ํ๋ฅผ ๋ณ๊ฒฝํจ
- ๋น๋ฉฑ๋ฑ์ฑ: ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ํ๋ฉด ๋ฆฌ์์ค๊ฐ ์ค๋ณต ์์ฑ๋ ์ ์์
- ์บ์ ๋ถ๊ฐ๋ฅ
- ํ๋ผ๋ฏธํฐ๋ Body๋ก ์ ๋ฌ
- ์ผ๋ฐ์ ์ผ๋ก ์์ฑ๋ ๋ฆฌ์์ค์ ID๋ฅผ ๋ฐํ
PUT - ์์
๊ธฐ์กด ๋ฆฌ์์ค๋ฅผ ์์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.์ ์ฒด ์์
๋ถ๋ถ ์์ (PATCH ์คํ์ผ)
์ํ ๋ณ๊ฒฝ
PUT ๋ฉ์๋ ํน์ง:
- ๋น์์ ํจ: ์๋ฒ ์ํ๋ฅผ ๋ณ๊ฒฝํจ
- ๋ฉฑ๋ฑ์ฑ: ๊ฐ์ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ํด๋ ๊ฒฐ๊ณผ ๋์ผ
- ์ผ๋ฐ์ ์ผ๋ก ๋ฆฌ์์ค ์ ์ฒด๋ฅผ ๊ต์ฒด
- ํ๋ผ๋ฏธํฐ๋ Body๋ก ์ ๋ฌ
- ์ฑ๊ณต ์ ๋น ์๋ต ๋๋ ์ ๋ฐ์ดํธ๋ ๋ฆฌ์์ค ๋ฐํ
DELETE - ์ญ์
๋ฆฌ์์ค๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.๋จ์ผ ์ญ์
์ํํธ ์ญ์
๊ด๋ จ ๋ฐ์ดํฐ์ ํจ๊ป ์ญ์
๋ฐฐ์น ์ญ์
DELETE ๋ฉ์๋ ํน์ง:
- ๋น์์ ํจ: ์๋ฒ ์ํ๋ฅผ ๋ณ๊ฒฝํจ
- ๋ฉฑ๋ฑ์ฑ: ์ด๋ฏธ ์ญ์ ๋ ๋ฆฌ์์ค๋ฅผ ๋ค์ ์ญ์ ํด๋ ๊ฒฐ๊ณผ ๋์ผ
- ์ฑ๊ณต ์ ์ผ๋ฐ์ ์ผ๋ก ๋น ์๋ต (204 No Content)
- ์ํํธ ์ญ์ ๊ณ ๋ ค (deleted_at ์ปฌ๋ผ ์ฌ์ฉ)
๋ฉ์๋ ์ ํ ๊ฐ์ด๋
์ ํ ๊ธฐ์ค
| ์์ | ๋ฉ์๋ | ์์ |
|---|---|---|
| ๋จ์ผ ์กฐํ | GET | /api/user/get?id=1 |
| ๋ชฉ๋ก ์กฐํ | GET | /api/user/list?page=1 |
| ์๋ก ์์ฑ | POST | /api/user/create |
| ์ ์ฒด ์์ | PUT | /api/user/update?id=1 |
| ๋ถ๋ถ ์์ | PUT | /api/user/updatePartial?id=1 |
| ์ญ์ | DELETE | /api/user/remove?id=1 |