API๋?
Application Programming Interface
API๋ ์ ํ๋ฆฌ์ผ์ด์
์ํํธ์จ์ด๋ฅผ ๊ตฌ์ถํ๊ณ ํตํฉํ๊ธฐ ์ํ ์ ์ ๋ฐ ํ๋กํ ์ฝ ์ธํธ์ด๋ค.
๋ด๋ถ์ ๊ตฌํ ์ฌํญ์ ๋ชจ๋ ๋๋ฌ๋ด์ง์๊ณ ์ฌ์ฉ์๊ฐ ํ์ํ ๋ถ๋ถ๋ง ๋
ธ์ถํด์ฃผ๋ ๊ฒ์ ๋งํ๋ค.
API๋ฅผ ์ฌ์ฉํ๋ฉด ๊ตฌํ ๋ฐฉ์์ ์์ง ๋ชปํด๋ ์ ํ ๋๋ ์๋น์ค๊ฐ ์๋ก ์ปค๋ฎคํฐ์ผ์ด์
ํ ์ ์์ผ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ๊ฐ์ํํ์ฌ ์๊ฐ๊ณผ ๋น์ฉ์ ์ ์ฝํ ์ ์๋ค.
REST๋?
Reqresentational State Transfer
REST๋ HTTP์์ ํ์ํ ์์์ ์ ๊ทผํ ๋ ์น์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํ๊ธฐ ์ํ ์ํคํ
์ฒ์ด๋ค.
REST ์ํคํ ์ฒ์ ์ ์ฉ๋๋ ๊ฐ์ง ์ ํ ์กฐ๊ฑด
- ์ธํฐํ์ด์ค ์ผ๊ด์ฑ : ์ผ๊ด์ ์ธ ์ธํฐํ์ด์ค๋ก ๋ถ๋ฆฌ๋์ด์ผ ํ๋ค.
- ๋ฌด์ํ : ๊ฐ ์์ฒญ ๊ฐ ํด๋ผ์ด์ธํธ์ context, ์ธ์ ๊ณผ ๊ฐ์ ์ํ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ์ฅํ์ง ์๋๋ค. ์์ฒญ๋ง๋ค ๋ถ๋ฆฌ๋์ด์ ์ฒ๋ฆฌ๋์ด์ผ ํ๋ค.
- ์บ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ: ํด๋ผ์ด์ธํธ๋ ์๋ต์ ์บ์ฑํ ์ ์์ด์ผ ํฉ๋๋ค. ์บ์๋ฅผ ํตํด ๋๋์ ์์ฒญ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
- ๊ณ์ธตํ: ํด๋ผ์ด์ธํธ๋ ๋์ ์๋ฒ์ ์ง์ ์ฐ๊ฒฐ๋์ด์๋์ง, ์ค๊ฐ ์๋ฒ๋ฅผ ํตํด์ ์ฐ๊ฒฐ๋์๋์ง ์ ์ ์๋ค. ์ค๊ฐ ์๋ฒ๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ์ด๋ ๊ณต์ ์บ์ ๊ธฐ๋ฅ์ ์ ๊ณตํจ์ผ๋ก์จ ์์คํ ๊ท๋ชจ ํ์ฅ์ฑ์ ํฅ์์ํค๋ ๋ฐ ์ ์ฉํ๋ค.
- Code on demand(optional): ์๋ฐ ์ ํ๋ฆฟ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ๊ณต์ ํตํด ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ๋ฅผ ์คํ์ํฌ ์ ์๋ ๋ก์ง์ ์ ์กํ์ฌ ๊ธฐ๋ฅ์ ํ์ฅ์ํฌ ์ ์๋ค.
- ํด๋ผ์ด์ธํธ/์๋ฒ ๊ตฌ์กฐ: ์ํคํ ์ฒ๋ฅผ ๋จ์ํ์ํค๊ณ ์์ ๋จ์๋ก ๋ถ๋ฆฌํจ์ผ๋ก์จ ํด๋ผ์ด์ธํธ-์๋ฒ์ ๊ฐ ํํธ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๊ตฌ๋ถํ๊ณ ์๋ก๊ฐ์ ์์กด์ฑ์ ์ค์ธ๋ค.
REST API์ ๊ตฌ์ฑ์์
- HTTP Method
- GET: ๋ฐ์ดํฐ ์กฐํ
- POST: ์๋ก์ด ๋ฐ์ดํฐ ์ถ๊ฐ
- PUT: ๋ฐ์ดํฐ ์ ์ฒด ์์
- PATCH: ๋ฐ์ดํฐ ์ผ๋ถ ์์
- DELETE: ์ ๋ณด ์ญ์
- URL - ๋ฐ์ดํฐ ์ ๊ทผ(๋ฐ์ดํฐ๋ง๋ค ์ ๊ทผํ ์ ์๋ ๊ณ ์ ์ URL์ด ์กด์ฌํด์ผํ๋ค.)
- Representation - ์์์ ํํ(URL๋ง์ผ๋ก ์ด๋ค ์์์ ์ ๊ณตํ๋์ง ํํํด์ผํ๋ค. ์ ๋ง๋ค์ด์ง API๋ URL๋ง ๋ณด๋๋ผ๊ณ API๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํด์ผํ๋์ง ๋์ถฉ ์ ์ ์๋ค.)
REST API์ ์์ ํํ์ ์ํ URL ์ค๊ณ ๊ท์น(๊ถ์ฅ์ฌํญ)
- ์๋ฌธ์๋ง ์ฌ์ฉํ๋ค.
- ์ธ๋๋ฐ(_)๋ ์ฐ์ง ์๊ณ , ํ์์ ํ์ดํ(-)์ ์ฐ๋ ์ง์ํ๋ค.
- ํ์ฅ์๋ฅผ ํ์ํ์ง ์๋๋ค.
- ๋ง์ง๋ง์ ์ฌ๋์๋ฅผ ํฌํจํ์ง ์๋๋ค.
- ํ์๋ ํฌํจํ์ง ์๋๋ค.
- ๊ฐ๊ธ์ ์ ๋ฌํ๊ณ ์ํ๋ ์์์ ๋ช ์ฌ๋ฅผ ์ฌ์ฉํ๋, ์ปจํธ๋กค ์์์ ์๋ฏธํ๋ ๊ฒฝ์ฐ ์์ธ์ ์ผ๋ก ๋์ฌ๋ฅผ ํ์ฉํ๋ค.
VS CODE์์ REST API ์ฌ์ฉํด๋ณด๊ธฐ
VS CODE์์ REST API๋ฅผ ์ฌ์ฉํด ๋ณผ ์ ์๋ ํ์ฅ ํ๋ก๊ทธ๋จ(REST Client)์ด ์๋ค๊ณ ํด์ googlebooksAPI๋ฅผ VS CODE์์ ํ๋ฒ ์ฌ์ฉํด๋ณด์๋ค.
- ํ์ฅ ํ๋ก๊ทธ๋จ REST Client๋ฅผ ์ค์นํ๋ค.
- .http ํ์ฅ์๋ก ํ์ผ์ ์์ฑํ๋ค.
- ์ํ๋ ๋ฉ์๋์ URL์ ์์ฑํ Send Request๋ฅผ ๋๋ฅธ๋ค.(###์ผ๋ก ๋ค๋ฅธ Request๋ฅผ ์์ฑํ ์ ์๋ค.)
- Response๋ฅผ ํ์ธํ๋ค.
์ฐธ๊ณ ์ฌ์ดํธ
'Back-end' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Slack์ผ๋ก OAuth ์ฌ์ฉํ๊ธฐ (0) | 2022.10.31 |
---|---|
[HTTP] ์๋ต ์ํ ์ฝ๋ ์ ๋ฆฌ (0) | 2021.09.14 |
[WEB] HTTPS์ SSL์ธ์ฆ์ (0) | 2021.08.29 |
[WEB] HTTP ์ ๋ฆฌ (0) | 2021.08.29 |
Android Studio + Node.js + MySQL ํ๋ก์ ํธ ํ์ผ ๊ตฌ์กฐ (0) | 2021.08.22 |