[Youtube project] REST API ์ค๊ณํด๋ณด๊ธฐ
์ด์ ๊น์ง ๋ง๋ ERD์ ํ๋ฐฉ์ฟผ๋ฆฌ๋ค์ ๋ฐํ์ผ๋ก ์์ฃผ ๊ฐ๋จํ ์ ํ๋ธ RestAPI๋ฅผ ์ค๊ณํด๋ณด์๋ค.
๐ RestAPI๊ฐ ๋ญ๊ฐ์?
REST๋ Representational State Transfer์ ์ฝ์๋ก ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ชจ๋ ๊ฒ์ ์๋ฏธํ๋ค.
REST๋
- ์์(RESOURCE) - URI
- ํ์(Verb) - HTTP METHOD
- ํํ(Representations)
๋ก ๊ตฌ์ฑ๋์ด์๋ค.
REST API๋ฅผ ์ค๊ณํ ๋ ๋๊ฐ์ง๋ฅผ ๊ผญ ๊ธฐ์ตํด์ผํ๋๋ฐ
1. URI๋ ์ ๋ณด์ ์์์ ํ์ํด์ผํ๋ค.
2. ์์์ ๋ํ ํ์๋ HTTP Method(GET,POST,PUSH,DELETE)๋ก ํํํ๋ค.
๋๋ฒ์งธ ๋ด์ฉ์ ์ด์ฐ๋ณด๋ฉด URI์ ๋์ฌ๊ฐ ๋ค์ด๊ฐ๋ฉด ์๋๋ค๋ ๊ฒ๊ณผ ๊ฐ๋ค.
REST API์ ์์๋ฅผ ๋ณด์ฌ์ฃผ๋ฉด
[POST] /users ๋ ์๋ก์ด ์ ์ ๋ฑ๋ก์ ์๋ฏธํ๋ค.
[GET] /users๋ ์ ์ฒด ์ ์ ์กฐํ๋ฅผ ์๋ฏธํ๋ค.
[PATCH] /users/userID/1 ์ userID๊ฐ 1์ธ ์ ์ ์ ์ ๋ณด๋ฅผ ์์ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
[PATCH] /users/d/userID/1 ์ userID๊ฐ 1์ธ ์ ์ ์ ์ ๋ณด๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
https://meetup.toast.com/posts/92
REST API ์ ๋๋ก ์๊ณ ์ฌ์ฉํ๊ธฐ : NHN Cloud Meetup
REST API ์ ๋๋ก ์๊ณ ์ฌ์ฉํ๊ธฐ
meetup.toast.com
[๋คํธ์ํฌ] REST API๋? REST, RESTful์ด๋?
REST API๋ REST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง API๋ฅผ ์๋ฏธํฉ๋๋ค. REST API๋ฅผ ์๊ธฐ ์ํด REST๋ถํฐ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. REST๋? REST(Representational State Transfer)์ ์ฝ์๋ก ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น ์์..
khj93.tistory.com
๐ API ๋ฆฌ์คํธ์ ํด๋ณด๊ธฐ
์์ ๊ฐ์ด ๊ตฌ์ฑํด๋ณด์๋ค. DELETE์ ๊ฒฝ์ฐ๋ ๋ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๊ฐ ์๊ธฐ์ ์ญ์ ํ๊ณ ์ถ์ ์ ๋ณด์ ๊ฒฝ์ฐ status๋ง d๋ก ๋ฐ๊พธ์๋ค.
RestAPI๋ฅผ ์ง๋ฉด์ ์์ฌ์ ๋๊ฑด ๊ธฐ๋ฅ๋ณ๋ก API๋ฅผ ์งฐ์ด์ผ ํ๋๋ฐ ํ๋ฉด๋ณ๋ก API๋ฅผ ์ง๋ค๋ณด๋ ๋์ผํ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฃ๊ณ ํด๋ฒ๋ ค์ ์ผ์ ์ฌ๋ฌ๋ฒ ํ๋ ๊ผด์ด ๋์ด๋ฒ๋ ธ๋ค. ๋ค์๋ฒ์ ํ๋ฉด๋ณด๋จ ๊ธฐ๋ฅ์์ฃผ๋ก ์ง๋ณด์.!
๐ REST API ๋ช ์ธ์
๐ ์คํ๋ง๋ถํธ๋ก ๊ตฌํ
๋๋ ์คํ๋ง๋ถํธ ํ๋ก์ ํธ๋ฅผ Controller,Service(CUD),Provider(Read),Dao๋ก ๊ตฌ์ฑํ๋ค.
๋ชจ๋ ์์์ ์กฐํํ๋ API๋ฅผ ๋ง๋๋ ๊ณผ์ ์ Controller,Service,Provider,Dao๋ฅผ ํตํด ์ค๋ช ํด๋ณด๊ฒ ๋ค.
๋จผ์ Controller๋จ ๋ถํฐ ๋ณด์.
ํด๋์ค ๋ฐ๊นฅ์ RestController์ RequestMapping ์ค์ ์ ํด์ค๋ค.
getVideos ํจ์ ์์ GET ๋ฉ์๋์ URI๋ฅผ ํ์ํด์ฃผ๋ GetMapping ์ด๋ ธํ ์ด์ ์ ์ถ๊ฐํด์ค๋ค.
์์์ ์กฐํํ๋ฉด ์ฌ๋ฌ ์์์ ์ ๋ณด๋ค์ด ๋์์ผํ๊ธฐ์ List๋ก ๋ฐ์์ค ๊ฒ์ด๋ค.
์ฌ๊ธด Provider๋จ์ธ๋ฐ, Provider๋ ์กฐํ๋ฅผ ํ๊ณ , Service๋ Create,Update,Delete๋ฅผ ํ ์ ์๊ฒ ๊ธฐ๋ฅ์ ๋๋ด๋ค. ์ด๋ฒ์๋ ์ ์ฒด ์์์กฐํ๋ฅผ ํด์ผํ๊ธฐ์ Provider์์ ์์ ์ ํด์ผํ๋ค.
๋ง์ง๋ง์ ํต์ฌ์ธ Dao์ด๋ค.
์ค์ง์ ์ผ๋ก ์ฌ๊ธฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ถํฐ ์ ๋ณด๋ฅผ ์ ๊ทผํ๊ณ , ์ด๋ฅผ ๋์์ฃผ๋ ์๋ฐ์ API๊ฐ jdbc Template์ด๋ค.
๐ ๋ด๊ฐ ๋ง๋ Rest API๋ฅผ ๋ฆฌ์กํธ์ ์ฐ๊ฒฐํด๋ณด์!
๋๋ ์คํ๋ง๋ถํธ ํ๋ก์ ํธ๋ฅผ 9000๋ฒ ํฌํธ์์ ์ด์๊ณ , ๋ฆฌ์กํธ๋ฅผ 3000๋ฒ ํฌํธ์์ ์ด์๋ค. ์ด๋ฌ๋ค ๋ณด๋ ๋ค๋ฅธ ํฌํธ์์ ์์์ ๊ณต์ ํ๋ ์ํฉ์ด ์๊ฒจ๋ฒ๋ ธ๊ณ ์ญ์ฌ๋ CORS ์๋ฌ๋ฅผ ๋ง๋๊ณ ๋ง์๋ค.
https://meaningland02.tistory.com/44
[Springboot,React] CORS ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ
๐CORS๋? Cross-Origin-Resource-Sharing Polict์ ์ฝ์๋ก ๋ค๋ฅธ ์ถ์ฒ์ ์์์ ๊ณต์ ํ ์ ์๋๋ก ์ค์ ํ๋ ๊ถํ ์ฒด์ ์ด๋ค. ์๋ฅผ ๋ค์ด ๋ด๊ฐ ์คํ๋ง ํ๋ก์ ํธ๋ 9000๋ฒ ํฌํธ์์ ์ด์๋๋ฐ ๋ฆฌ์กํธ๋ 3000๋ฒ ํฌํธ
meaningland02.tistory.com
์ฌ๊ธฐ์ ํด๊ฒฐ๊ณผ์ ์ ์ ์ ์ด๋์๋ค.
์ ํ๋ธ ํํ๋ฉด์ ๋ฐ๋ชจ๋ก ๊ตฌ์ฑํด๋ณด์๋ค. ๋ด๊ฐ ๋ง๋ api๊ฐ ์ด๋ ๊ฒ ์ฐ๊ฒฐ๋๋ค๋ ๊ฐ๊ฒฉ์ค๋ฌ์ด ์๊ฐ์ด ์๋ ์ ์๋ค.(?)
๐ ์ต์ข ์ฝ๋๋ ์ฌ๊ธฐ์ ํ์ธํด๋ณด์ธ์ : https://github.com/JjungminLee/YoutubeClone_Project