API์ ์๋ํ ์ธ๊ณ์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค!
์ด ๋ฌธ์์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ํ์ตํฉ๋๋ค:* API๋ ๋ฌด์์ธ๊ฐ์* RESTful API๋ ๋ฌด์์ธ๊ฐ์* Tulip์ API๋ก ์์ ํ๋ ๋ฐฉ๋ฒ
API๋ ๋ฌด์์ธ๊ฐ์?
API (์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค)๋ ์๋ก ๋ค๋ฅธ ์ํํธ์จ์ด ์ปดํฌ๋ํธ๊ฐ ํต์ ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๊ฒ ํด์ฃผ๋ ํ๋กํ ์ฝ ์งํฉ์ ๋๋ค.
๊ฐ๋ฐ์๋ API๋ฅผ ์ฌ์ฉํ์ฌ ์๊ณ ๊ฐ๋ณ์ ์ธ ์ฝ๋ ๋ฉ์ด๋ฆฌ ์ฌ์ด์ ๊ฐ๊ทน์ ๋ฉ์ ๊ฐ๋ ฅํ๊ณ ํ๋ ฅ์ ์ด๋ฉฐ ์์ ํ๋ฉฐ ์ฌ์ฉ์ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ญ๋๋ค.
API์๋ ๋ค ๊ฐ์ง ํต์ฌ ๋ถ๋ถ์ด ์์ต๋๋ค.1. API ํด๋ผ์ด์ธํธ - API ์์ฒญ์ ์์ํ๋ ๋ฐฉ๋ฒ.2. API ์์ฒญ - API๊ฐ ์์ ์ ์ํํ๊ฑฐ๋ ์ฌ์ฉ์์๊ฒ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋๋ก ์์ฒญํ๋ ๊ฒ.3. API ์๋ฒ - ์์ฒญ์ ์ถ์ฒ์ ์์ฒญ์ด ์ ๋๋ก ์์ฑ๋์๋์ง ํ์ธํ๊ณ ์์ฒญ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ฑฐ๋ ์กฐ์ํ๋ ๊ฒ.4. API ์๋ต - ์ฌ์ฉ์(ํด๋ผ์ด์ธํธ)์๊ฒ ๋๋์์ค๋ ์๋ต์ ๋๋ค.
API ์์ฒญ
API ์์ฒญ์ ํฌ๊ฒ ๋ค์ฏ ๊ฐ์ง๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- ์๋ํฌ์ธํธ: ํน์ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ์ ์ฉ URL์
๋๋ค. ์๋ฅผ ๋ค์ด
/tables์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ํค๋ฆฝ ํ ์ด๋ธ์ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ ํค๋ฆฝ ํ ์ด๋ธ์ ๋ง๋ค ์ ์์ต๋๋ค. - ๋ฉ์๋: API๊ฐ ์ํํ๋ ค๋ ์์ ์ ํ์ ๋๋ค. Tulip์ REST API๋ฅผ ์ฌ์ฉํ๋ฏ๋ก GET, PUT, POST ๋ฐ DELETE๋ก ์ ํ๋ฉ๋๋ค.
- ํ๋ผ๋ฏธํฐ: API๊ฐ ์ฒ๋ฆฌํ ํน์ ์ง์นจ์ ์ ๊ณตํ๊ธฐ ์ํด API ์๋ํฌ์ธํธ๋ก ์ ๋ฌ๋๋ ๋ณ์์
๋๋ค. ์์ /tables ์๋ํฌ์ธํธ ์์ ์์ ํ์ฅํ์ฌ,
/tables/{tableId}๋ฅผํตํด ํน์ ํ ์ด๋ธ ID๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ๋ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐ๋ก ์์ ํ ์ ์๋ ์ฟผ๋ฆฌ๋ ์์ต๋๋ค. - ์์ฒญ ํค๋: ์ฝํ ์ธ ์ ํ์ด๋ ์ธ์ฆ ์๊ฒฉ ์ฆ๋ช ๋ฑ ์์ฒญ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ํค-๊ฐ ์์ ๋๋ค.
- ์์ฒญ ๋ณธ๋ฌธ: ๋ฆฌ์์ค๋ฅผ ์์ฑ, ์ ๋ฐ์ดํธ ๋๋ ์ญ์ ํ๋ ๋ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ธํ ์ค๋ช ํ๋ ์์ฒญ์ ์ฃผ์ ๋ถ๋ถ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ์คํ ์ด์ URL์์ ์ ์คํ ์ด์ ์ ์์ฒญํ๊ณ ์ด๋ค ์คํ ์ด์ ๊ทธ๋ฃน์ ์ํด์ผ ํ๋์ง, ์ด๋ค ์ฑ์ ํฌํจํ ์ ์๋์ง ์์ธํ ์ค๋ช ํ ์ ์์ต๋๋ค.
API ์๋ต
REST ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ์ฑํ์ฌ ์ ์กํ๋ฉด ์๋ฒ๋ ๋ค์๊ณผ ๊ฐ์ ์๋ต์ ๋ณด๋ ๋๋ค:
- ์ํ ์ฝ๋: API ์์ฒญ์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ 3์๋ฆฌ ์ฝ๋์ ๋๋ค.
- ์๋ต ํค๋: ์๋ฒ์ ์๋ต์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์๋ต ๋ณธ๋ฌธ: ์๋ต ๋ณธ๋ฌธ์๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์ค์ ๋ฐ์ดํฐ๋ ์ฝํ ์ธ , ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํฌํจ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ธ HTTP ์ํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
200 OK: ์์ฒญ์ด ์ฑ๊ณตํ์ผ๋ฉฐ ์๋ต ๋ณธ๋ฌธ์ ์์ฒญ๋ ๋ฆฌ์์ค๊ฐ ํฌํจ๋์ด ์์์ ๋ํ๋ ๋๋ค**.404 ์ฐพ์ ์ ์์**: URL์ ์๋ชป ์ ๋ ฅํ๊ฑฐ๋ ๋ฆฌ์์ค๊ฐ ์ด๋ ๋๋ ์ญ์ ๋์ด ์๋ฒ๊ฐ ์์ฒญ๋ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์์์ ๋ํ๋ ๋๋ค**.400 ์๋ชป๋ ์์ฒญ**: ์๋ชป๋ ๊ตฌ๋ฌธ์ด๋ ์์ฒญ์ ํ์ ๋งค๊ฐ๋ณ์ ๋๋ฝ ๋ฑ์ ํด๋ผ์ด์ธํธ ์ค๋ฅ๋ก ์ธํด ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์์ ๋ํ๋ ๋๋ค**.500 ๋ด๋ถ ์๋ฒ ์ค๋ฅ**: ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ์๊ธฐ์น ์์ ์กฐ๊ฑด(์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์ ์ดํ ์ ์๋ ์๋ฒ ์ธก ๋ฌธ์ )์ด ๋ฐ์ํ์์ ๋ํ๋ ๋๋ค**.302 ๋ฐ๊ฒฌ๋จ(์ผ์์ ์ผ๋ก ์ด๋๋จ**): ์์ฒญ๋ ๋ฆฌ์์ค๊ฐ ์ผ์์ ์ผ๋ก ๋ค๋ฅธ URL๋ก ์ด๋๋์์์ ๋ํ๋ ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์๋ต ํค๋์ ์ ๊ณต๋ ์ URL๋ก ๋ค์ ์์ฒญํด์ผ ํฉ๋๋ค**.401 ๊ถํ์ด ์์**: ์์ฒญ์ ์ฌ์ฉ์ ์ธ์ฆ์ด ํ์ํ์ง๋ง ํด๋ผ์ด์ธํธ๊ฐ ์ ํจํ ์๊ฒฉ ์ฆ๋ช ์ ์ ๊ณตํ์ง ์์๊ฑฐ๋ ์์ง ์ธ์ฆํ์ง ์์์์ ๋ํ๋ ๋๋ค.
HTTP ์ค๋ฅ ์ฝ๋์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์์ ํ์ธํ์ธ์.
RESTful API๋ ๋ฌด์์ธ๊ฐ์?
Tulip์ RESTful API๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ค๋ฅธ ์ ํ์ API๋ก๋ SOAP, GraphQL, Webbhook ๋๋ gRPC ๋ฑ์ด ์์ต๋๋ค.
RESTful API๋ผ๊ณ ๋ ํ๋ REST API๋ ์น URL์ ํตํด ๋ฐ์ดํฐ, ์ฝํ ์ธ , ์๊ณ ๋ฆฌ์ฆ, ๋ฏธ๋์ด ๋ฐ ๊ธฐํ ๋์งํธ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฐ๋จํ๊ณ ํต์ผ๋ ์ธํฐํ์ด์ค์ ๋๋ค. REST API๋ ์ค๋๋ ์น์์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ API์ ๋๋ค.
REST API๋ ๋ค ๊ฐ์ง ์ฃผ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.1. GET: ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์๋ฒ๊ฐ ์์ฒญํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ ์ฌ์ฉ์์๊ฒ ๋ค์ ์ ์กํฉ๋๋ค.2. PUT: PUT ์์ฒญ์ ์ํํ๋ฉด ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํญ๋ชฉ์ ์ ๋ฐ์ดํธํฉ๋๋ค.3. POST: ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํญ๋ชฉ์ ์์ฑํ ์ ์์ต๋๋ค.4. DELETE: ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํญ๋ชฉ์ ์ญ์ ํ ์ ์์ต๋๋ค.
Tulip์ API๋ก ์์ ํ๋ ๋ฐฉ๋ฒ
๋ค์ ๋ฌธ์๋ฅผ ์ฝ๊ณ Tulip์์ API ์ฌ์ฉ ๋ฐ ํ ์คํธ๋ฅผ ์์ํ์ธ์:
- ์ปค๋ฅํฐ๋ ๋ฌด์์ธ๊ฐ์?
- HTTP ์ปค๋ฅํฐ ํจ์๋ฅผ ๋ง๋ค๊ณ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ
- Tulip API ์ค์ ํ๊ธฐ
์ํ๋ ๊ฒ์ ์ฐพ์๋์?
community.tulip.co๋ก ์ด๋ํ์ฌ ์ง๋ฌธ์ ๊ฒ์ํ๊ฑฐ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋น์ทํ ์ง๋ฌธ์ ํ๋์ง ํ์ธํ ์๋ ์์ต๋๋ค!

