Notice
Recent Posts
Recent Comments
Link
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- aop
- log
- ์๋ฒ
- Grafana
- EC2 ์ธ์คํด์ค ์์ฑ
- RDS
- HTTP ์ํ ์ฝ๋
- API
- nginx
- CRUD
- ec2 rds ์ฐ๊ฒฐ
- ๋ง์ด๊ทธ๋ ์ด์
- REST
- REST API ์ค๊ณ
- ์๋ ๋ฐฐํฌ
- CD
- SSL
- spring
- AWS
- DDos
- EC2
- springboot
- ์ธ์ฆ
- ํ๋ฆฌํฐ์ด
- Prometheus
- postgresql
- RDS์์ฑ
- ๋ฐฑ์
- restful
- ๋ณต๊ตฌ
Archives
- Today
- Total
SU_DING_GI
RESTful API ๋ณธ๋ฌธ
728x90
API
๐ก API๋ Application Programming Interface์ ์ฝ์๋ก ํ๋ก๊ทธ๋จ์ ์คํํ๋ ์ธํฐํ์ด์ค์ด๋ค
- API๋ฅผ ํตํด ํ๋ก๊ทธ๋จ์ ์์ฒญ์ ์ ๋ฌํ๊ธฐ ์ํ ํต๋ก ํน์ ๋ฐฉ๋ฒ์ด๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ํธ์ถํ๋ ํจ์๋ API์ด๋ค.
REST API
๐ก REST๋ REpresentational State Transfer๋ผ๋ ์ฉ์ด์ ์ฝ์๋ก HTTP method๋ณ๋ก ์ญํ ๋ช ์ํ API
REST API ๋์์ธ ๊ฐ์ด๋
- URL์ ์ ๋ณด์ ์์์ ํํํด์ผ ํ๋ค.
- ์ ๋ณด์ ์์ ์ด๋ฆ์ ๋์ฌ๋ณด๋ค ๋ช ์ฌ๋ฅผ ์ฌ์ฉํ๋ค.
/members/1
- ์์์ ๋ํ ํ์๋ HTTP Method(GET, POST, PUT, DELETE ๋ฑ)๋ก ํํ
GET /members/1
URL ์ค๊ณ ์ ์ฃผ์ํ ์
- ์ฌ๋์ ๊ตฌ๋ถ์(/)๋ ๊ณ์ธต ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉํ๋ค.
- URL ๋ง์ง๋ง ๋ฌธ์๋ก ์ฌ๋์(/)๋ฅผ ํฌํจํ์ง ์๋๋ค.
- ํ์ดํ(-)์ URL ๊ฐ๋
์ฑ์ ๋์ด๋๋ฐ ์ฌ์ฉํ๋ค.
- ๋ถ๊ฐํผํ๊ฒ ๊ธด URL ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ํ์ดํ์ ์ฌ์ฉํด ๊ฐ๋ ์ฑ์ ๋์ผ ์ ์๋ค.
- ๋ฐ์ค(_)์ URL์ ์ฌ์ฉํ์ง ์๋๋ค.
- ๋ฐ์ค์ ๋ณด๊ธฐ ์ด๋ ต๊ฑฐ๋ ๋ฐ์ค ๋๋ฌธ์ ๋ฌธ์๊ฐ ๊ฐ๋ ค์ง๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ค๋ณด๋ค๋ ํ์ดํ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค
- URL๊ฒฝ๋ก์๋ ์๋ฌธ์๊ฐ ์ ํฉํ๋ค.
- RFC 3986(URL ๋ฌธ๋ฒ ํ์)์ URL ์คํค๋ง์ ํธ์คํธ๋ฅผ ์ ์ธํ๊ณ ๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ๋๋ก ๊ท์
- ํ์ผ ํ์ฅ์๋ URL์ ํฌํจ์ํค์ง ์๋๋ค.
- Accept header๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ๋ช ์
GET /members/soccer/245/photo HTTP/1.1 Host: restapi.example.com Accept: imgae/jpg
์์์ ํํํ๋ Collection๊ณผ Document
๐ก Document : ๋ฌธ์ ํน์ ๊ฐ์ฒด (๋จ์๋ก ํํ)
Collection : ๋ฌธ์๋ค์ ์งํฉ ํน์ ๊ฐ์ฒด๋ค์ ์งํฉ (๋ณต์๋ก ํํ)
HTTP ์ํ ์ฝ๋
200: ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ ์์ ์ผ๋ก ์ํ201: ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ ํ ๋ฆฌ์์ค ์์ฑ์ ์์ฒญ, ํด๋น ๋ฆฌ์์ค๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋จ (POST๋ฅผ ํตํ ๋ฆฌ์์ค ์์ฑ ์์ ์)400: ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ถ์ ์ ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ์๋ต ์ฝ๋401: ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ฆ๋์ง ์์ ์ํ์์ ๋ณดํธ๋ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ์ ๋ ์ฌ์ฉํ๋ ์๋ต ์ฝ๋- ex) ๋ก๊ทธ์ธ ํ์ง ์์ ์ ์ ๊ฐ ๋ก๊ทธ์ธ ํ์ ๋, ์์ฒญ ๊ฐ๋ฅํ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ์ ๋
403: ์ ์ ์ธ์ฆ ์ํ์ ๊ด๊ณ ์์ด ์๋ตํ๊ณ ์ถ์ง ์์ ๋ฆฌ์์ค๋ฅผ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ์ ๋ ์ฌ์ฉํ๋ ์๋ต ์ฝ๋- 403 ๋ณด๋ค๋ 400์ด๋ 404๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๊ถ๊ณ . 403 ์์ฒด๊ฐ ๋ฆฌ์์ค๊ฐ ์กด์ฌํ๋ค๋ ์๋ฏธ ๋ดํฌ
405: ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋ฆฌ์์ค์์๋ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ๋ฉ์๋๋ฅผ ์ด์ฉํ์ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ์๋ต ์ฝ๋301: ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋ฆฌ์์ค์ ๋ํ URL์ด ๋ณ๊ฒฝ๋์์ ๋ ์ฌ์ฉํ๋ ์๋ต ์ฝ๋- ์๋ต ์ Location header์ ๋ณ๊ฒฝ๋ URL์ ์ ์ด์ค์ผ ํ๋ค
500: ์๋ฒ์ ๋ฌธ์ ๊ฐ ์์ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ์๋ต ์ฝ๋
CRUD vs REST
CRUD
CRUD๋ CREATE, READ, UPDATE, DELETE์ ์ฝ์๋ก, ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์ฉํ๋ก๊ทธ๋จ์์ ์คํ๋๋ ๋ค ๊ฐ์ง ๊ธฐ๋ณธ ์์ ์ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฝ์ด
REST
![]()
REST๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ HTTP ํ๋กํ ์ฝ ์ธํฐํ์ด์ค๋ฅผ ํ์คํํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์น API์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋์์ธ ์คํ์ผ ์ค ํ๋
REST์ CRUD์ ์ ์ฌ์
| REST | CRUD | ||
|---|---|---|---|
| ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ ์ฝ๋ ์์ฑ | POST | CREATE | insert ๋ฌธ์ ํตํด ์ ๋ ์ฝ๋ ์์ฑ |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐ์ ธ์จ ์ ๋ณด๋ฅผ ์ฝ๊ธฐ | GET | READ/RETRIEVE | ์ ๋ ฅ ๋งค๊ฐ๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ด |
| ๊ฐ์ฒด๋ฅผ ์ ๋ฐ์ดํธ | PUT/PATCH | UPDATE | ๋ฐ์ดํฐ๋ฅผ ๋ฎ์ด์ฐ์ง ์๊ณ ์ ๋ฐ์ดํธ |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ ์ฝ๋ ์ ๊ฑฐ | DELETE | DELETE | ๋ฐ์ดํฐ ์ ๊ฑฐ |
REST์ CRUD์ ์ฐจ์ด์
- CRUD๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ์์ ์๊ตฌ์ ์ธ ๊ธฐ๋ก์ ํ๊ธฐ ์ํ ์ฃผ๊ธฐ์ด๊ณ , RESTful ์ํคํ ์ฒ์ ๋ชฉํ๋ฅผ ์ค์ํ๊ธฐ ์ํด REST ๋ช ๋ น์ ๋งคํ ๋๋ค
- ์ฆ REST api๋ ํ์ค์ด๊ณ , CRUD๋ ํจ์์ด๋ค.
์ถ์ฒ
'BACK-END' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๐ ๋ก๊ทธ๋ฅผ ๋ณด๋ฉด ๋ณด์ธ๋ค: ์ฐ๋ฆฌ๋ ์ด๋๋ฅผ ๋จผ์ ์ต์ ํํด์ผ ํ ๊น? (1) | 2025.04.29 |
|---|