๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ199 6. RESTful API ์ค๊ณ ๊ฐ์ด๋ Richardson Maturity Model A way to grade your API according to the constraints of REST Level 0 expose soap web services in rest style https://server/getPosts Level 1 expose resources with proper url note : improper use of http methods → ๋ชจ๋ ์์ฒญ์ GET, POST๋ก ๋ฐ๊ฑฐ๋ ์๋ฌ/200์ผ๋ก๋ง ๋ฐํํ๋ ํํ https://server/accounts/10 Level 2 level1 + HTTP methods(GET, POST, PUT, DELETE ๊ตฌ๋ถ) Level 3 level2 + HATEOAS DATA + NEXT .. 2023. 6. 20. 5. Java Persistence API ์ฌ์ฉ JPA ๊ฐ์ JPA Java Persistence API ์๋ฐ ORM ๊ธฐ์ ์ ๋ํ API ํ์ค ๋ช ์ธ(Object Relationship Mapping) ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ ์ํ ์ธํฐํ์ด์ค → ๋ฉ์๋ ์ ์ธ๋ฌธ๋ง ์กด์ฌ. ์ฐ๋ฆฌ๋ ๊ตฌํ์ฒด๋ฅผ ๊ฐ์ง๊ณ ๊ฐ๋ฐ์ ํด์ผ ํ๋ค ⇒ Hibernate EntityManager๋ฅผ ํตํด CRUD ์ฒ๋ฆฌ Hibernate JPA์ ๊ตฌํ์ฒด, ์ธํฐํ์ด์ค๋ฅผ ์ง์ ๊ตฌํํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ⇒ JPA์ EntityManager๋ฅผ ๊ตฌํ ๊ฐ์ฒด ๊ด๊ณ ๋งคํ ํ๋ ์์ํฌ ์์ฐ์ฑ, ์ ์ง๋ณด์, ๋น์ข ์์ฑ Spring Data JPA Spring Module JPA๋ฅผ ์ถ์ํํ Repository ์ธํฐํ์ด์ค ์ ๊ณต ์ธํฐํ์ด์ค ์ ์ธ ๋ง์ผ๋ก๋ Spring์์ ์ ๊ณตํ๋ CRUD ๊ธฐ๋ฅ ์ฌ์ฉ.. 2023. 6. 20. 4. Spring Boot API ์ฌ์ฉ REST API Level 3๋ฅผ ์ํ HATEOAS ์ค์ HATEOAS Hypermedia As the Engine Of Application State ํ์ฌ ๋ฆฌ์์ค์ ์ฐ๊ด๋(ํธ์ถ ๊ฐ๋ฅํ) ์์ ์ํ ์ ๋ณด๋ฅผ ์ ๊ณต REST API ์ค๊ณ ๋จ๊ณ The Swamp of POX : ํน์ ํ ์น ํ๋กํ ์ฝ์ ํตํด์ ์ปดํจํฐ๊ฐ ๊ฐ์ง๊ณ ์๋ ์์์ ์๋ฏธ ์์ด ์ ๋ฌ Resources HTTP Verbs : http ์ํ ๋ฉ์๋๋ฅผ ์ด์ฉ Hypermedia controls : ๋ฆฌ์์ค์ ์ ๋ณด๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ฆฌ์์ค์ ํจ๊ป ์ ๋ฌ org.springframework.boot spring-boot-starter-hateoas IntelliJ์์ ๊ฒ์ shift key 2๋ฒ ๋๋ฅด๊ธฐ → pom.xml ์ ํ ๋ฒ์ ๋ณ HATEOAS.. 2023. 6. 20. 3. RESTful Service ๊ธฐ๋ฅ ํ์ฅ Validation API @Valid annotation ์ฌ์ฉ **pom.xml์ dependency ์ถ๊ฐ** org.hibernate.validator hibernate-validator 6.0.7.Final dto์ ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ @Data @AllArgsConstructor public class User { private Integer id; @Size(min=2, message = "Name์ 2๊ธ์ ์ด์ ์ ๋ ฅํด์ฃผ์ธ์.") private String name; private String password; @Past // ๊ณผ๊ฑฐ ๋ ์ง๋ง ๊ฐ๋ฅํ ์ ์ฝ ์กฐ๊ฑด private Date joinDate; } controller์ ์ถ๊ฐ JDK์ ํฌํจ๋ API์ hibernate library์ ํฌํจ๋ vali.. 2023. 6. 20. ์ด์ 1 ยทยทยท 5 6 7 8 9 10 11 ยทยทยท 50 ๋ค์