RESTful
-
[RESTFUL 학습] JPA를 이용한 CRUD 심화(유저 -게시물 연동)SPRING/WEBSERVICE 2020. 10. 4. 01:03
개인 유저별로 작성할 수 있는 게시물에 대한 테이블을 JPA를 이용하여 작성하고 운영하려면, USER (1) ----> POST (N) 매핑이 되어야 된다. 즉 유저 1명 당 게시물이 0개 ~ N개의 글을 올릴 수 있기 때문에 해당하는 소스를 작성해야 된다. POST 객체 아래 대부분의 내용은 이전에 생성하였던 JPA Entity 내용과 동일하나, @ManyToOne(fetch = FetchType.LAZY) 어노테이션을 사용한 부분이 다르다. POST는 N에 해당하고 User는 1에 해당하기 때문에 ManyToOne 어노테이션을 사용하였다. import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.AllArgsConstructor; impor..
-
[RESTFUL 학습] JPA를 사용하기 위한 기본 세팅(H2 DB 사용)SPRING/WEBSERVICE 2020. 9. 5. 20:03
org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime JPA와 H2 DB를 사용하기 위해서는 위와 같이 pom.xml에 dependency를 추가합니다. 만약 spring security를 사용한다면 아래와 같이 security 설정 파일에서 메서드를 재정의해야 한다. // h2-console를 인증처리 없이 사용할 수 있도록 재정의 // security 관련 설정을 하였다면, Security 설정 클래스에서 아래와 같이 메서드롤 재정의해야 // h2-console를 사용할 때 security 인증 처리 없이 사용할 수 있다. @Override protected void configure(HttpSecurity ht..
-
[RESTFUL 학습] spring-security 기본SPRING/WEBSERVICE 2020. 8. 31. 23:29
org.springframework.boot spring-boot-starter-security 스프링에 기본적인 시큐리티를 적용하기 위해서는 위와 같이 dependency를 추가해야 한다. 스프링 톰캣 서버를 시작할 때 발급되는 위 password를 Authorization에 할당해야 한다. (참고 : https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Authorization) 위 POSTMAN와 같이 user/ 비밀번호를 Authorization Header에 추가해야 정상적인 Response를 받을 수 있다. - Spring Security 계정 및 비밀번호 설정방법 1. application.yml 에 적용 2. Configuration Class ..
-
[RESTFUL] HAL BROWSERSPRING/WEBSERVICE 2020. 8. 31. 22:08
org.springframework.data spring-data-rest-hal-browser HAL Browser - Hyper Application Language HAL은 API의 리소스들 사이에 쉽고 일관적인 하이퍼링크를 제공하는 방식이다. API 설계시 HAL을 도입하면 API간에 쉽게 검색이 가능하다. 따라서 해당 API를 사용하는 다른 개발자들에게 좀 더 나은 개발 경험을 제공한다. - By Mike Kelly (최초 제안자) HAL Broswer를 적용 후 아래와 같이 /broswer/index.html 주소에서 여러가지 API 리소스들을 조회할 수있다. 아래는 jvm의 max memory를 검색한 결과이다.
-
[RESTFUL 학습] SWAGGERSPRING/WEBSERVICE 2020. 8. 23. 22:50
Swagger를 적용함으로써 API를 빠르게 문서화하고 명세할 수 있다. /swagger-ui.html Swagger를 적용 후 위와 같은 URL에 접속하면, 아래 스크린샷과 같이 생성된 API 문서를 볼 수 있다. Swagger를 사용하는 방법은 아래와 같다. 우선 pom.xml에 swagger 라이브러리를 등록한다. io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 그리고 아래와 같이 Configuration(설정파일)을 생성하고 아래와 같이 작성한다. 아래 discover 메서드는 Swagger와 Hateoas를 동시에 적용했을 때 에러가 발생하기 때문에 넣은 소스이다. Haeoas와 Swagger를 동시에 적..
-
[RESTFUL 학습] HAETAOSSPRING/WEBSERVICE 2020. 8. 23. 00:58
Hypermedia As The Engine Of Application state Client에 링크로 사용 가능한 URL을 리소스로 전달하여, Client가 해당 리크를 참고할 수 있도록 하는 REST-API 기술 주로 마이크로서비스를 기반으로 프로젝트를 개발할 때 쓰인다고한다. 참조문서:https://spring.io/guides/gs/rest-hateoas/ 아래와 같이 pom.xml에 hateoas dependency를 추가해야 hateoas를 사용할 수 있다. org.springframework.boot spring-boot-starter-hateoas @GetMapping("/users/{id}") public EntityModel retrieveUser(@PathVariable int id)..
-
[Restuful 학습] - 버전관리SPRING/WEBSERVICE 2020. 8. 8. 20:48
Restful 웹서비스 개발방식에서 버전관리를 하는 법은 여러가지이다. 1. mapping url / 메서드 별 관리 @GetMapping("/v1/users/{id}") public MappingJacksonValue retrieveUservV1(@PathVariable int id) @GetMapping("/v2/users/{id}") public MappingJacksonValue retrieveUserV2(@PathVariable int id) 2. paramter를 사용하는 방법 @GetMapping(value = "/users/{id}", params = "version=1") @GetMapping(value = "/users/{id}", params="version=2") 위와 같이 Para..
-
Jackson Annotation 관련 정리 (업데이트 중)SPRING/SPRINGBOOT 2020. 8. 8. 17:39
실무나 공부 중에 알게 된 Jackson Annotation 관련 사항에 대하여 정리를 하였다. @JsonIgnore 해당 어노테이션을 사용하면 Jackson이 해당 프로퍼티를 무시하도록 만든다. 예를 들어 아래와 같이 @JsonIgnore 어노테이션을 설정하면 Json으로 return할때 해당 필드들은 제외되게 된다. public class User { private Integer id; @Size(min=2, message ="Name은 2글자 이상 입력해 주세요.") private String name; @Past private Date joinDate; @JsonIgnore private String password; @JsonIgnore private String ssn; } @JsonIgnor..