๐ก 1. API๋?
Application Programming Interface
API ๊ตฌ๋์๋ฆฌ
Route : ์ธ๋ถ์์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ํด๋น URI์ ๋ง๋ Controller๋ก ์ฐ๊ฒฐ
โ ํค์ค์คํฌ๊ฐ ์ฃผ๋ฌธ์ ๋ฐ์์ ์ข
์
์์๊ฒ ์ฃผ๋ฌธ ์ ๋ฌ
Controller : Route๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ณ , Service / Provider์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ฃผ์ด ๋ก์ง์ ์ํํ ์ ์๋๋ก ํจ, validationํ์ธ (ํธ๋์ญ์
, ์ ํจ์ฑ ๊ฒ์ฌ)
โ ์ข
์
์์ ์ฃผ๋ฌธ์ด ์ ์ ํ์ง, ๋๋ฝ๋ ์ฌํญ์ ์๋์ง ํ์ธํ๊ณ ์๋ฆฌ์ฌ์๊ฒ ์ฃผ๋ฌธ ์ ๋ฌ
Service / Provider : ์ค์ ํต์ฌ์ ์ผ๋ก ๋ก์ง์ ์ํํ๋ ์์ญ
Dao : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์ง์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๊ฐ์ฒด โ ์ฟผ๋ฆฌ ์ํ
โ ์๋ฆฌ์ฌ๋ ์๋ฆฌ๋ฅผ ํ๊ณ , ์ด ๊ณผ์ ์์ ๋์ฅ๊ณ ์์ ์ฌ๋ฃ๋ฅผ ๊บผ๋ โ ๋ค์ ์ฃผ๋ฌธ์์๊ฒ ์ ๋ฌ
API์ ์ญํ
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ์์ ์๋ฏธํ๋ค.
HTTP URI
๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ช ์ํ๊ณ ,๋ฉ์๋
(GET, POST, PUT, PATCH, DELETE)๋ฅผ ํตํด ํด๋น ๋ฐ์ดํฐ๋ฅผCRUD
(Create, Read, Update, Delete) ํ๋ค.
โ ๋ฉ์๋๋ค์ ํตํด HTTP์ ํต์ ํ๋ค.- GET : ์กฐํ
- POST : ์์ฑ
- PUT : ์ ์ฒด ์์ (ํ ์ด๋ธ ์ ์ฒด ์์ )
- PATCH : ๋ถ๋ถ ์์ (ํน์ ์นผ๋ผ ์์ )
- DELETE : ์ญ์
๐ก 2. ๋ฐ์ดํฐ ์ ์ก ๋ฐฉ๋ฒ
ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ๋ฐ์ดํฐ๋ฅผ packet
ํํ๋ก ๋ด์์ ์ ๋ฌํ๋ค. packet์ header
์ body
๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ, ๋ถ์์ ์ธ ๋ฐ์ดํฐ๋ header, ์ค์ํ ์ง์ง ๋ฐ์ดํฐ๋ body์ ๋ด์ ์ ๋ฌํ๋ค.
Query String
- key, value๊ฐ์ ํตํด ์ ๋ฌํ๊ณ ์๋ตํ๋ ๋ฐฉ์
- URL ๋ค์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ์ ๊ณตํ๋ค.
โ ๋ณด์ฌ์ ธ๋ ๋๋ ๊ฐ๋ค์ ์ฟผ๋ฆฌ์คํธ๋ง ๋ฐฉ๋ฒ์ผ๋ก ๋ณด๋ธ๋ค.
http://daeunn.shop/app/users?userEmail=daeun@naver.com
Path Variable
- URL ๋ค์ /1, /2์ ๊ฐ์ด ๊ฒฝ๋ก๋ฅผ ์ง์ ํ์ฌ ์์ฒญํ๊ณ ์ ๊ณตํ๋ ๋ฐฉ์
- ๋ฐ์ดํฐ์ ์์น๋ฅผ ํน์ ํด์ ๋ณด์ฌ์ค์ผ ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
http://daeunn.shop/app/users/123
๐ก 3. REST API
REST API๋ ์น์ ์ฅ์ ์ ์ต๋ํ์ผ๋ก ๋ฐ์ํ ์ ์๋ API ์ค๊ณ๋ฐฉ์์ผ๋ก, ์ด ๊ท์น์ด ์ ์ง์ผ์ง API๋ฅผ Restful API๋ผ๊ณ ํ๋ค.
REST API ๊ตฌ์ฑ
- ์์(Resource) : URI
- ํ์(Verb) : HTTP Method
โ URI๋ ์ ๋ณด์ ์์์ ํํํ๊ณ , ์ด ์์์ ๋ํ ํ์๋ Method๋ฅผ ํตํด ๊ตฌํํ๋ค !
REST API ๊ท์น
- URI๋ ์ ๋ณด์ ์์์ ํํ / ์์์ ๋ํ ํ์๋ HTTP Method๋ก ํํ
โ ๋์ฌ๋ณด๋ค๋ ๋ช ์ฌํ, ๋ณต์ํ ์ฌ์ฉ - ์ฌ๋์ ๊ตฌ๋ถ์๋ก ๊ณ์ธต๊ด๊ณ๋ฅผ ๋ํ๋
- URI ๋ง์ง๋ง ๋ฌธ์๋ก ์ฌ๋์ ์ฌ์ฉ X
http://daeunn/shop/app/users
- ํ์ดํ(-)์ URI์ ๊ฐ๋ ์ฑ์ ๋์ด๋๋ฐ ์ฌ์ฉ (๋ฐ์ค(_) ์ฌ์ฉ ์ง์)
- URI ๊ฒฝ๋ก์๋ ๋๋๋ก ์๋ฌธ์ ์ฌ์ฉ
- URI์ ํ์ผํ์ฅ์ ํฌํจ X
http://daeunn/shop/app/users-daeun (O)
http://daeunn/shop/app/users_daeun (X)
์ฐธ๊ณ
'Back-end > Server' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Server] APM ์์ค์ค์น - 2. MySQL (0) | 2021.07.30 |
---|---|
[Server] APM ์์ค์ค์น - 1. Apache (2) | 2021.07.22 |