-
Notifications
You must be signed in to change notification settings - Fork 0
08) hellohateoas
choi jae ho edited this page Jun 3, 2021
·
1 revision
- REST API๋ LEVEL ์ด ์กด์ฌ ํ๋ค.
- HATEOAS๋? : ๊ฐ์ฅ ๋์ ๋ฑ๊ธ
- HATEOAS๋ฅผ JAVA์์ ์ด๋ป๊ฒ ๊ตฌํํ ๊ฒ์ธ๊ฐ?
-
- HATEOAS ์ Concept
-
- HATEOAS ์ ๊ตฌํ
- level 0 ~ 3 | ์ด์ ๊น์ง ๊ตฌํ ํ ๊ฒ์ level 2
- level 2 : Resouces + ์ฐ์ฐ์ ํ๊ธฐ ์ํด HTTP method๋ฅผ ์ง์ (๋๋ถ๋ถ์ ํ๋ก์ ํธ๊ฐ level2์ ๊ธฐ๋ฐ)
- level 1 : url ๋ท ๋ถ๋ถ์ ์ฐ์ฐ์ ๊ดํด ๋ฃ์ด์ค๋ค. ์ก์ ์ ๋ํด ๋ณ๋์ URL ์ ๋ฃ์ด์ค๋ค.
- level 3 : HATEOAS (level 2 + extra links to navigate through API) request๋ ์ฐจ์ด๊ฐ ์์ง๋ง, ๋งํฌ๊ฐ ๋ค์ด๊ฐ๋ค.
- ์๋ฒฝํ RESTful API๋ฅผ ๊ตฌํํ๊ธฐ ์ํด HATEOAS๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค.
- Hypermedia As The Engine Of Application State
- One of the constraints of the REST architecture
- Server response in the form of JSON+HAL
- Such a resource consists of two parts:
- data
- links to actions that are possible to be performed on a given resource
- Data content, Links ๋ก ๊ตฌ๋ถ
- level 2 ์์๋ Data content ๊น์ง๋ง..
- self : ์ด์์ฒด
- direct_movies : ๋งํฌ๋ฅผ ์ซ์๊ฐ๋ฉด, ์ด ๊ฐ๋ ์ด ๋ง๋ ๋งํฌ๋ก ์ด๋
- directors : ๋ชจ๋ ๊ฐ๋ ์ ๋ํ List ๋งํฌ๋ก ์ด๋
- REST API ์์, HATEOAS๋ ์๋ต์ผ๋ก์ Hypermedia๋ฅผ ๋ณด๋ด์ฃผ๋๋ฐ HATEOAS๋ ๋ฐ์ดํฐ ์ ๋ณด ๋ฟ ์๋๋ผ, ์ฐ๊ด๋ ์ ๋ณด๋ ํจ๊ป ๋งํฌ์ ๋ฃ์ด์ ๋ณด๋ด์ค๋ค.
- HATEOAS principle client์๊ฒ the next potential steps์ ๋ํ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ค์ผ ํ๋ค๋ ์ .
- ๋์ ์์ค์์ ํด๋ผ์ด์ธํธ, ์๋ฒ๋ฅผ ๋ถ๋ฆฌ์ํค๊ธฐ ์ํจ.
- ๋ถ๋ฆฌ์ํด์ผ๋ก์จ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์งํํ ์ ์๋๋ก ํจ.
- ์๋ฒ๋ฅผ ๊ณ ์น๋ฉด, ํด๋ผ์ด์ธํธ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ๋ฅผ ๋ง์.
- url์ด ๋ณ๊ฒฝ๋์ด๋, client์ ์ฅ์์ ์ด๋ฆ์ ํตํด ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ์์ ์ํฅ์ด ์๋ค.
- Links : relation / href