여러 사이드 프로젝트나 개인 프로젝트를 하면서 REST API를 구현했었다.(라고 믿고 있었다.)최근 후배들과 공모전 프로젝트를 진행하면서 서버 관련 스터디를 진행했다. 그때 API가 무엇인지, 거기서 REST API가 무엇인가에 대해 스터디 준비를 하는데 다음 발표
Event의 등록, 조회 및 수정이 가능한 API이벤트 전체 조회OAuth2 인증 받지 않음 - 아래 링크 제공OAuth2 인증 받음 - create-new-event 링크 제공이벤트 생성단일 이벤트 조회이벤트 수정Self-descriptive Message - "pr
테스트 할 케이스는 다음과 같다.Build가 제대로 이뤄지는가Build가 됐을 때, 값이 제대로 들어가는가DTO에서 Model로 변환됐을 때 제대로 만들어지는가
테스트 케이스는 다음과 같다.정상적인 EventDto를 보냈을 때 DB에 insert되서 id 값을 담은 Event를 반환하는가잘못된 EventDto를 보냈을 때 Error Code가 반환되는가.고려 사항mockMvc에 content를 담을 때, Json 형식으로 담는
현재 Event Create 로직만 구현되어 있으며 별도의 추가 logic이 없기 때문에 테스트 코드 작성은 차후에 합니다.(왜냐면 순전히 JPA 기능만 사용하기 때문에 별도의 추가 로직이 없는 경우, Service 테스트는 JPA 기능 테스트가 되기 때문! 따라서 차
Spring HATEOAS > HATEOAS는 REST 아키텍쳐, Uniform Interface 조건 중 하나로 어플리케이션의 상태를 전이시킬 수 있는 링크, 기능을 제공해야한다. Spring HATEOAS는 HATEOAS를 만족시키기 위해 만들어진 라이브러리로
이번에는 Event를 Paging을 사용해서 10개씩 가져오는 기능을 구현할 것이다.그와 관련해서 고려해야 할 사항은 다음과 같다.Paging이 제대로 이뤄지는가.Paging을 통해 받은 Result도 HATEAOS를 만족하는가.Page 내의 Event들이 HATEAO
이번에는 단일 Event를 가져오는 로직을 구현할 것이다.여기서 고려해야할 점은단일로 불러왔을 때, HATEAOS를 만족하는가.존재하지 않는 Event를 가져올 때, 에러 메시지를 보내는가.테스트 코드를 작성하면 다음과 같다.Service layer에서는 JPA를 통해
이번에는 Event API 중 마지막 기능인 이벤트 수정 기능을 구현할 것이다.고려해야할 사항은 다음과 같다.수정한 경우, 수정된 event 값을 넘겨줘야하며 HATEOAS를 만족해야한다.존재하지 않는 id 값으로 들어온 경우, Notfound 에러 메시지를 반환한다.
Swagger UI는 다양한 언어, 프레임워크에서 API 문서를 만들고 테스트할 수 있도록 해주는 라이브러리다.Spring에는 Spring Rest Docs라는 라이브러리가 존재하지만 개인적으로 Swagger UI를 더 선호하기 때문에 강의와 다르게 Swagger UI
강의를 따라가면서 코드를 작성했는데 구현에 초점을 둬서 코드가 깨끗하지 않았다. 따라서 우선 강의를 멈추고 EventController 리팩토링을 진행했다.리팩토링은 아래와 같이 진행됐다.리팩토링 항목공통적으로 사용하는 selfAndUpdateLink 만드는 부분 분리
현재 프로젝트에서는 H2를 사용해서 테스트를 구동하고 있다. 다만 여기서 문제는 배포, 빌드 환경에서도 H2를 사용하고 있다는 것이다.나는 빌드 & 배포에서는 MySQL을 사용하고 테스트 환경에서는 H2를 사용할 계획이다.따라서 DB 환경을 분리해야 한다.우선 pom.
API를 사용하기 위해선 API에서 초기 데이터(어떤 API인지에 대한 정보)를 제공받을 수 있는 Index가 필요하다.이를 위해 IndexController를 구현하고 Event domain 링크와 Profile링크를 추가하고자 한다.고려해야할 사항Index에 pro
Spring Security는 인증과 보안 관련 Spring Framework로 필터 & 인터셉터 기반으로 구현된다.공식 홈페이지에서는 다음과 같이 정의하고 있다.Spring Security is a powerful and highly customizable authe
Spring Security는 UserDetail이라는 객체를 통해서 권한 및 인증을 관리한다.UserDetail 인터페이스는 다음과 같이 생겼으며 이를 상속받아서 Account class를 구현하여 이를 사용해서 인증 및 권한 관리를 한다.세부 권한은 별도의 Enum
Oauth2 서버에서 /oauth/token URL을 통해 토큰을 발급받을 수 있다.토큰을 발급받기 위해서는 AuthConfig에서 등록한 Client의 id와 secret 키를 헤더에 담고 username, password, grant_type을 입력해서 보내줘야 한
Event Controller Test를 수정하여 Spring Security가 제대로 적용됐는 지 확인해야한다.고려해야할 사항은 다음과 같다create 로직은 token이 있어야 성공한다.event를 읽어올 때, token이 있으면 create & update 링크가
강의를 수강하면서 나오는 내용을 모두 구현했다.강의에서의 핵심 구현 내용은 아래와 같다.self descriptive와 HATEOAS가 가능한 REST API를 구현한다.Spring Security & Oauth2가 적용된 안전한 REST API를 구현한다.TDD 기반