반응형

프로그래밍/Spring & Spring boot 44

[Spring boot] RESTAPI _ 05 Swagger

Swagger API 문서를 자동으로 만들어주는 라이브러리 단순 문서 뿐 아니라 API를 문서내에서 parameter를 넣어가며 바로 실행 해볼 수 있음 rest api 제작 후 따로 테스트 페이지나 postman으로 실행해보는 대신 swagger 문서 만들어서 실행 가능 복잡하지 않은 시스템이라면 rest api 서버에 swagger를 적용시켜두고, 해당 api를 호출하는 작업자에게 복작하게 설명하고 문서 만들 것 없이 swagger 문서 url만 보내서 알아서 작업하게 할 수 있음 Swagger Test pom.xml 라이브러리 추가 https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter io.springfox springfox-..

[Spring boot] RESTAPI_05 Hateoas

Hateoas Rest API를 사용하는 클라이언트가 전적으로 서버와 동적인 상호작용이 가능하도록 하는 것 클라이언트가 서버로 어떠한 요청을 할 때, 요청에 필요한 URL를 응답에 포함시켠 반환하게 한다 HateoasTest pom.xml 에 라이브러리 추가 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-hateoas org.springframework.boot spring-boot-starter-hateoas UserDTO public class UserDTO { private int no; private String id; private String pwd; private String name; priva..

[Spring boot] RESTAPI _ 04 Exception & validation(데이터 검증)

Validation 클라이언트의 데이터는 조작이 쉽고, 모든 데이터가 정상적인 방식으로 들어오지 않을 가능성도 있기 때문에 Client Side뿐만 아니라 Server Side에서도 데이터 유효성 검사를 할 필요가 있다. =>Spring boot starter validation 활용 사용 방법 1. 의존성 추가 2. Controller의 유효성 검사 적용 Request 객체 앞에 @Validated 어노테이션 추가 3. Request를 핸들링 할 객체 정의 시 @Validated 어노테이션을 통해 필요한 유효성 검사 적용 Validation Test pom.xml 에 라이브러리 추가 https://mvnrepository.com/artifact/org.springframework.boot/spring-..

[Springboot] RESTAPI_03 ResponseEntity

ResponseEntity 결과 데이터와 HTTP 상태 코드를 직접 제어할 수 있는 클래스 HttpStatus, HttpHeaders, HttpBody를 포함 ResponseEntityTest ResponseMessage package com.greedy.api.section02.responseentity; import java.util.Map; public class ResponseMessage { private int httpStatus; private String message; private Map results; public ResponseMessage(int httpStatus, String message, Map results) { super(); this.httpStatus = httpSt..

[Spring boot] RESTAPI_02 Response

@RestController @Controller + @ResponseBody 클래스 레벨에 작성하며 해당 클래스 내 모든 핸들러 메소드에 @ResponseBody 어노테이션을 묵시적으로 적용한다는 의미 ResponseRest 1. 문자열 응답 @RestController @RequestMapping("/response") public class ResponseRestController { @GetMapping("/hello") public String helloworld() { return "hello world"; } } POSTMAN으로 확인 2. 기본 자료형 응답 @RestController @RequestMapping("/response") public class ResponseRestContr..

[Spring boot ] REST API - 01 REST API & POSTMAN

REST(Representational Safe Transfer) 데이터를 주고 받는 방식의 아키텍처(디자인 패턴) 1. HTTP URL를 통한 자원의 명시 (1) 쿼리 스트링 방식이 아니라 PathVariable 방식 사용 (2) 대문자 사용 지양 (3) ' _ '대신 ' - ' 사용 (4) URL 마지막에 ' / ' 사용하지 않음 (5) URL에 행위를 포함하지 않음(insert, update, delete) (6) 가급적 명사 사용(동사 사용 지양) 2. HTTP Method로 해당 자원을 제어하는 행위를 표현 (1) GET(Read) : URL/1 (2) POST(Create) : URL (3) PUT(Update) : URL/1 (4) DELETE (Delete) : URL/1 Restful 서..

[Springboot / 스프링부트] thymeleaf (2) 타임리프 제어문

1. th:fi, th:unless - th:if는 변수 표현식의 OGNL(Object Graph Navigation Language)을 활용한 조건식으로 조건문을 작성하면 결과가 true 일 때 해당 태그의 범위가 처리 됨. - th:unless는 표현식의 OGNL을 활용한 결과가 false일 때 해당 태그 범위가 처리 됨 넘어온 값은 0보다 크다. 넘어온 값은 0보다 작다. 넘어온 값은 0보다 작지 않다. 사과 좋아용 바나나 좋아용🍌🍌 controller에서 넘긴 값 model.addAttribute("num", 1); model.addAttribute("str", "바나나"); - &&, ||를 and, or를 사용해서 다중 조건 처리 1부터 10까지의 양수 바나나 좋아요~~🍌🍌 - 타임리프 Uti..

[Springboot / 스프링부트] thymeleaf (1) 타임리프 표현식

1. thymeleaf 사용 http://www.thymeleaf.org"> 타임리프의 th 속성을 사용하기 위한 네임스페이스로 HTML 태그의 속성으로 작성하기 2. 주석의 종류 (1) parser-level 주석 정적 페이지에서 주석으로 있다가 thymeleaf가 처리 될 때 제거되어 클라이언트에게 노출되지 않는 주석 ex) (2) protorype-only 주석 정적 페이지에 주석으로 있다가 thymeleaf 처리 후에 화면에 보여지게 되는 주석 ex) 3. 표현식 - parameter로 넘어온 경우 -> param - session attribute일 경우 ->session - model에 담겨 온 경우(request)는 따로 적지 않음. request라고 명시하면 오류 발생함. (1) 변수 표현..

[Spring/JPA] Mapping (3) 연관 관계 매핑 (단반향, 양방향)

연관 관계 서로 다른 두 객체가 연관성을 가지고 관계를 맺는 것을 연관 관계라고 함 연관 관계의 분류 1. 방향에 따른 분류(단반향, 양방향) - 테이블의 연관 관계는 외래키를 이용하여 양방향 연관 관계의 특성을 가짐 - 참조에 의한 객체의 연관관계는 단반향 - 객체 간의 연관 관계를 양방향으로 만들고 싶으면 반대 쪽에도 필드를 추가해서 참조를 보관하면 됨 ( 양방향 관계가 아닌 서로 다른 단방향 관계 2개로 볼 수 있음) 2. 다중성에 대한 분류 - 연관 관계가 있는 객체거나 혹은 테이블 관계에서 실제로 연관을 가지는(매핑되는) 객체의 수( 객체 관계 또는 행(테이블 관계)의 수에 따라 분류 됨 (1) 1:1(OneToOne) 연관 관계 (2) 1:N(OneToMany) 연관 관계 (3) N:1(Man..

반응형