๋ชฉ์ฐจ
Api ์๋ฒ๋ฅผ ๋ง๋ค๋ฉด์ ์๊ธด ์๋ฌธ์
api ์๋ฒ๋ฅผ ๋ง๋ค๋ฉฐ, response ๊ท๊ฒฉ์ ๋ง๋ค๊ณ , ์ด๊ฒ ์ ๊ฒ ๊ธฐ๋ฅ๊ตฌํ์ ๋ง์ณค๋ค. ํ์ db table์์ ํน์ ์กฐ๊ฑด์ผ๋ก ๊ฒ์๋ ํ๊ณ , ๋ฑ๋ก๋ ํ๊ณ ์๋น์ค ๊ตฌํ์ ํ์ํ ๊ธฐ๋ฅ์ ๋ชจ๋ ๋ง์ณค๋ค. ๊ทธ๋ฌ๋ค ๋ณ๋ ฌ๋ก ์งํ์ค์ธ ํ๋ก์ ํธ ๋ด๋น ๊ฐ๋ฐ์์ api ์๋ฒ response๋ฅผ ๋น๊ตํด๋ณด์๋ค. ๋ค๋ฅธ ๊ฐ๋ฐ์๋ถ์ ๋ชจ๋ ์๋ต ์ํ, ์ฆ status code๋ฅผ 200์ผ๋ก ํต์ผ์์ผฐ๋ค. (์๋ฆฌ์ฆA ์คํํธ์ ์ ์ฌํ...) ๋๋ ์ด์ ํ๋ก์ ํธ์์ AR Glass์ ํต์ ํ ๋, ํค๋์ status code๋ฅผ ๋ด์๋ ์ฝ์๋ ์ฝ๋๋ฅผ ๋๊ฒจ ์๋ฌ ํธ๋ค๋ง์ด ๊ฐ๋ฅํ๊ฒ ํ๋ค. ํค๋์ status code๋ก ๋๊ธฐ๋ฉด, ์๋ฌ๊ฐ ๋ฐ์ํ ์ AR Glass ์ธก์์ header์ ๊ธฐ๋ณธ์ ๋ณด๋ง์ผ๋ก try-catch๊ฐ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค. ๋ฐ๋ฉด ๋ชจ๋ ์์ฒญ์ 200์ผ๋ก ์ฒ๋ฆฌํ๋ฉด, try-catch๊ฐ ๊ฑธ๋ฆฌ์ง ์๋๋ค.
์ด ๋ ๋ฐฉ์์ ๋ณด๊ณ , ์ด๋ค ๋ฐฉ์์ด ๋ง๋ ๊ฒ์ธ์ง ํท๊ฐ๋ฆฌ๊ธฐ ์์ํ๋ค. ๋๋ Restful api์ ์๋ ์๋๋ฅผ ๋ณํํ๋ฉด ์๋๋ค ์๊ฐํ๊ณ , header์ status code์ body์์ ๋๊ฒจ์ฃผ๋ status code๋ ๋์ผํด์ผ ํ๋ค๊ณ ๋น์ฐํ ์๊ฐํ๋ค. ํ์ง๋ง, ์ด์ ๋ํด ์ฌ๋ฌ๊ฐ์ง ์์น๋ฅผ ํ๋ฉด์ ๋ฌด์กฐ๊ฑด 200์ผ๋ก ๋๊ธฐ๊ณ ์ฌ๋ด์ ๊ท์ ํ ์๋ฌ์ฝ๋๋ก ๋๊ธฐ๋ ๊ฒฝ์ฐ๋ ์๋ค๋ ๊ฒ์ ์๊ฒ๋์๋ค. ๋ ๋ฐฉ๋ฒ์ค ์ด๋ค ๋ฐฉ๋ฒ์ด ๋ง๋๊ฒ์ธ์ง, ๋ํ ์ด๋ค ์ํฉ์ ์ด๋ค status code๋ฅผ ๋๊ฒจ์ผํ๋์ง ์ ๋ฆฌํ ํ์๋ฅผ ๋๊ผ๋ค.
์ ๋ฆฌํ์๋ฉด ๋ ๊ฐ์ง ๊ด์ ์ด ์๋ค.
- Restful API์ ๊ธฐ๋ณธ, REST ๊ท์น์ ๋ฌด์ํด์ ์๋๋ค.
- Status Code์ Error ๋ช ์๋ฅผ ํตํด ๊ณต๊ฒฉ์ ๋ ธ์ถ๋ ์ ์๋ค. *๋ณด์ ์ธก๋ฉด
* ํ ์คํธ ์ฝ๋ ์๋ชป ์์ฑํด์ success๊ฐ true๋ก ๋์ด์์. ์๋๋ ์๋ฌ ์ํฉ์ ๋ง๊ฒ true/false ๋ณ๊ฒฝ๋จ
http header
๋จผ์ http์ header๋ฅผ ์ ๋ฆฌํด๋ณด์. http๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๋ํ ๊ท์น, ์ฆ ํ๋กํ ์ฝ์ด๋ค. ์์ฒญ(ํด๋ผ์ด์ธํธ→์๋ฒ)๊ณผ ์๋ต(์๋ฒ→ํด๋ผ์ด์ธํธ)๋ก ๊ตฌ๋ถํ๋ค. http๋ ์์ฒญ(request)๊ณผ ์๋ต(response)๋ฅผ ํ ๋, ์ ํด์ง ํ๋๋ก ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ธ๋ค. ์ฐ๋ฆฌ๊ฐ ajax๋ก GET '/test/user'์ ํ๋ฉด ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก http ํ๋กํ ์ฝ ๊ท์น์ ๋ง๊ฒ ๋ณด๋ด์ง๊ณ , ์๋ฒ์์ ์์ฒญ์ ๋ง๋ ์๋ต์ ๋ณด๋ผ๋์๋ http ๊ท์น์ ๋ง๊ฒ ๋์์ค๋ ๊ฒ์ด๋ค. ๋๋ฌธ์ ๋ฐ๋์ status code, method, url ๋ฑ์ด ๋์ด๊ฐ๋ค. ๊ทธ๊ฒ ๋ฃฐ์ด๋ค. (์ด๊ฒ ์ ๋์ด๊ฐ๋๊ณ ์ง๋ฌธ๋ฐ์ ๊ฒฝํ์ด ์์ด์...)
*์ ํํ ๋งํ์๋ฉด status code๋ ํค๋์ ํฌํจ๋๋๊ฒ ์๋๋ผ http start line์ ์๋ ์ ๋ณด์ด๋ค.
- start line : ํค๋ ์์ฝ ์ ๋ณด
ex) GET /search HTTP/1.1 ๋๋ HTTP/1.1 404 Not Found
- header : ์ถ๊ฐ ์ ๋ณด๊ฐ ๋ด๊น
- body : ์๋ต ๋๋ ์์ฒญ์ ์ค์ ๋ด์ฉ
๋์์ด ๋๋ ๊ธ์ ๋ช๊ฐ์ง ๋ชจ์๋ณด์๋ค. http๋ ๋ฌด์์ธ์ง, ํค๋์ ๋ํ ์ค๋ช , http ๊ตฌ์กฐ ์ ๋ฆฌ ๋ธ๋ก๊ทธ ์ด๋ค.
- ๋ชจ์ง๋ผ http, http ํค๋
- http ๊ตฌ์กฐ ๋ฐ ํต์ฌ ์์ -- ๋ธ๋ก๊ทธ ์ ๋ฆฌ
- ๊ทธ๋ฐ REST API๋ก ๊ด์ฐฎ์๊ฐ (์์)
status code
๊ทธ๋ผ ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒ ๊ณจ๋จธ๋ฆฌ๋ฅผ ์๊ณ ์๋ status code๋ ๋ฌด์์ผ๊น? status code๋ ๋ง ๊ทธ๋๋ก ์๋ต ์ํ์ด๋ค. ์๋ฒ์์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๋๋ต, ์ฆ ์๋ต์ ๋ณด๋ผ๋, ๊ฒฐ๊ณผ ์ํ๊ฐ ๋ฌด์์ธ์ง ์ ํด์ง code๊ฐ์ ๋ณด๋ด์ฃผ๋ ๊ฒ์ด๋ค. http์ ๊ท์น์ผ๋ก ์๋ต ์ํ ์ฝ๋๋ฅผ ๋ฃ๊ธฐ๋ก ์ฝ์ํ๊ธฐ๋๋ฌธ์ ๊ผญ ๋ช ์ํด์ผ ํ๋ค. ๊ด๋ จํ์ฌ ์ ์ ๋ฆฌ๋ ๊ธ์ด ์์ด ๋งํฌ๋ก ๋จ๊ฒจ๋๋ค.
https://sanghaklee.tistory.com/61
status code๋ฅผ ๋๊ธฐ๋ ์ ๋ต
๊ธฐ๋ณธ์ ์ธ http ํ๋กํ ์ฝ์ ๊ตฌ์กฐ์ status code์ ๋ํด ์์๋ณด์๋ค. ์์ ๋งํ๋ฏ์ด status code๋ฅผ ๋๊ธฐ๋ ์ฝ๋๋ ๋ ๊ฐ์ง ๊ด์ ์ผ๋ก ๋๋๋ค.
- Restful API์ ๊ธฐ๋ณธ, http ํ๋กํ ์ฝ ๊ท์น์ ๋ฌด์ํด์ ์๋๋ค.
- Status Code์ Error ๋ช ์๋ฅผ ํตํด DB ์ค๊ณ๊ฐ ๋ ธ์ถ๋ ์ ์๋ค. *๋ณด์ ์ธก๋ฉด
Restful API์ ๊ธฐ๋ณธ, REST ์ํคํ ์ฒ ๊ท์น์ ๋ฌด์ํด์ ์๋๋ค.
์ ์ ์ฅ์ RESTfulํ api๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ์ค์ฌ์ ๋ ๊ฒ์ด๋ค. http status code์ body์ ๋ฃ์ด์ค ์๋ต ์ํ ํ์ ๊ฐ์ ํต์ผํด์ผ REST api ์ํคํ ์ฒ์ ๋ง๊ธฐ๋๋ฌธ์ RESTful API๋ฅผ ์๋ํ๊ณ ์๋ฒ๋ฅผ ๋ง๋ ๊ฒ์ด๋ผ๋ฉด, ํด๋น ์ํคํ ์ฒ์ ๋ง์ถ๋ ๊ฒ์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก api๋ฅผ ๋ง๋ ๋ค๊ณ ํ๋ฉด REST ์ํคํ ์ฒ์ด๊ธฐ ๋๋ฌธ์ status์ body์ ์๋ต ์ํ ์ฝ๋๋ฅผ ํต์ผ ์ํค๋๊ฒ ์ผ๋ฐ์ ์ด๋ค.
Status Code์ Error ๋ช ์๋ฅผ ํตํด ๊ณต๊ฒฉ์ ๋ ธ์ถ๋ ์ ์๋ค.
status code์ ๋ํด ์์นํด๋ณด๋, ๋งค๋ฒ 200์ผ๋ก ๋ณด๋ด์ฃผ๋ ์ด์๊ฐ ๊ตญ๋ด ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ๊ด๋ จ๋ ๊ฒ์ ์๊ฒ๋์๋ค. ํ๊ตญ์ธํฐ๋ท์งํฅ์(KISA) ์ฃผ์ฒด๋ก ์ ์๋ ๋ณด์ ๊ฐ์ด๋, '์ํ์ด ์ฝ๋ฉ ๊ฐ์ด๋'๊ฐ ์๋๋ฐ, ์ ๋ถ์ ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ์ ๋ถ ์ฃผ๊ด ํ๋ก์ ํธ๋ฅผ ํ ๋ ํด๋น ๊ฐ์ด๋ ๋ผ์ธ์ ๋ฐ๋ผ์ผํ๋๋ฏ ํ๋ค. header status code์ 200์ด ์๋ 4xx, 5xx ์ฝ๋๋ฅผ ๋ฃ์์ ์๋ฌ๋ฅผ ์ก์ ์ ์๊ฒ๋๊ณ , ์ด๋ ๊ณต๊ฒฉ์์๊ฒ '์๋ฌ ๋ฐ์ ์กฐ๊ฑด'์ ํ๋จํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ์ค๋ค๋ ๊ฒ์ด๋ค. ๋ฐ์ ์กฐ๊ฑด์ ํ๋จํ ์ ์์ผ๋ฉด, ๊ณต๊ฒฉ์๊ฐ ์ค๋ฅ๋ฅผ ๋ฐ์์์ผ ์๋ฒ๋ฅผ ์ฃฝ์ผ ์ ๋ ์๊ณ , ์๋ฒ์ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๋ ธ์ถ๋ ์ ์๋ ๋ณด์ ์ด์๊ฐ ์๋ค๋ ๊ฒ!
์๋ต ์ํ ์ฝ๋๋ฅผ 200์ผ๋ก ํต์ผ์ํค๋๋ฐ, ๋ณด์์ด์๊ฐ ์๋ค๋ ๊ฒ์ ์ด๋ฒ ๊ธฐํ์ ์๊ฒ ๋์๋ค. ๋ ๋ฐฉ์์ค ์ด๋ค ๋ฐฉ์์ด ์ณ๋ค ๊ทธ๋ฆ๋๋ค ๋งํ ์ ์๊ณ , ๊ฐ๋ฐ์๋ผ๋ฆฌ ์ ์ฑ ์ ์ ๋ฆฌํด๋๊ฐ ์ฌํญ์ธ๊ฒ ๊ฐ๋ค. ์์ธํ ์๊ธฐ๋ ๋ฉํ ๋๊ป ํ๋ฒ ์ฌ์ญค๋ณด๊ณ ๋ค์ ์ ๋ฆฌํด์ผ๊ฐฐ๋ค.
์๋ฒ ๊ฐ๋ฐ๊ณผ '๋ณด์'์ ๋ ์ ์๋ ๊ด๊ณ์ธ ๊ฒ ๊ฐ๋ค. ์์ง์ ๊ธฐ๋ฅ ๊ตฌํ๊ณผ ์ต์ ํ์ ์ง์คํ๊ณ ์๋ ์ด์ด์ด์ด ์ฃผ๋์ด ๊ฐ๋ฐ์์ด์ง๋ง, ๊ธฐ๋ณธ์ ์ธ ๋ณด์ ์ด์๋ฅผ ์์ํ๋ฉด์ ๊ณต๋ถํด์ผ๊ฒ ๋ค.
๊ด๋ จํ์ฌ ์ฐธ๊ณ ํ ๊ธ ๋งํฌ๋ฅผ ๋จ๊ฒจ๋๋ค.
[Tstory] RESTful API ์ค๊ณ ๊ฐ์ด๋
[Tistroy] ํ๊ตญ์ธํฐ๋ท์งํฅ์(KISA) ์ํ์ด ์ฝ๋ฉ ๊ด๋ จ ๋งํฌ ๋ชจ์
'๐์ฝ๋ฉ ๊ณต๋ถ > ์ฝ๋ฉ๊ณต๋ถ ์ด๋ชจ์ ๋ชจ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
NCP) nCloud ๋ค์ด๋ฒ API Signature Key ์์ฑ (0) | 2021.10.09 |
---|---|
Server ) RESTful API, ์์ฃผ ์ฌ์ฉํ๋ Status code ์ ๋ฆฌ ๋ฐ ์์ (0) | 2021.10.04 |
Server ) Nginx 502 Bad Gateway ์๋ฌ / nginx ์ค์ ์๋ชปํจ (1) | 2021.09.28 |
๋ก์ง ) ๋ก๊ทธ์ธ, ๋ฉ์ผ ์ธ์ฆ (0) | 2021.09.25 |
CS ) ssh, sh, bash ๋ ๋ญ๊น? (0) | 2021.09.25 |