스프링 부트로 api를 만들어 보자!
우선 local 환경에서 개발을 하고 잘 돌아가는지 확인 후, ec2 서버에 배포하는 식으로 개발을 진행할 것 이다.
짠.. 우선 intellij로 프로젝트를 열어줬다!!! jdk버전은 15.0.2로 했다
스프링 부트는 route와 controller가 합쳐져 있음
폴더 소개
- src : 도메인 별로 패키지 구성, 문제 영역, 요구 사항 (User, Post, Comment, Order)
- config 및 util : 메인 로직은 아니지만, src에서 필요한 부차적인 파일들을 모아놓은 폴더
** validation을 잘 처리해서 꼭 서버가 터지는 일이 없도록 해야함 **
- 형식적 validation : 이메일 구조가 아닙니다. 이메일 입력을 안하셨습니다 -> Controller에서
- DB에서 검증해야하는 의미적 validation : 비활성화된 유저입니다. -> Provider / Service 에서
우리가 작성할 개발 코드는 src 폴더에 있다고 보면 됨
src/main/java/.../config/secret/Secret.java : 로그인과 관련된 코드가 작성되어있음, 노출되면 안됨
src/main/java/.../config/BaseResponse.java : 요청에 성공/실패했을 때
src/main/java/.../config/BaseResponseStatus.java : validation 처리를 할 때 필요
src/main/java/.../utils/JwtService.java&SHA256.java : 로그인 암호화와 관련됨
src/main/java/.../utils/ValidationRegex.java : validation을 처리할 때 필요한 정규식과 관련된 파일
DemoApplication : 스프링 부트가 시작하는 지점
src/resources/logback-spring.xml : log를 찍어주는 파일
build.gradle : 의존성을 설정하는 곳
스프링은 어노테이션이 정말 많음! 너무 많으므로 그때 그때 구글링해서 공부하자
db 연결해주고,, 연결 되었는지 확인해 보겠다.
build 해줬더니, 몇가지 폴더?파일들이 생겼다.
이렇게 뜨면 잘 돌아가는거다.
postman으로도 확인해보겠다.
.../src/test/TestController.java 파일에 보면 로그를 테스트하는 api가 있다. 그 api를 이용해서 서버와 디비가 제대로 실행되고 있는지 확인해보겠다.
이제 유저를 조회하는 api를 한번 보겠ㄷ.
user를 조회하는 것 이기 때문에 도메인명은 user
@RequestMapping("/users")
컨트롤러에 있는 모든 api, uri 앞에 공통적으로 /users가 들어간다는 의미
@RequestParam(required = true) String Email
query-string으로 이메일을 받겠다는 의미
컨트롤러에서 형식적 validation을 처리한다고 했는데, 처리해주고 있다.
.../src/user/model : 필요한 요청값과 응답값의 형식을 정의해줌
이메일 검색 조회 api의 반환형은 GetUserRes 이다. 아래 사진과 같다.
** 조회하는 것은 provider에서 처리하고, 생성하는 것은 service에서 처리함
queryForObject : 하나의 객체만 리턴할 때 사용
query : ex) 리스트로 리턴
의미적 validation검증하는 코드르 확인해보자.
validation은 유저 생성 api뿐 아니라 모든 api에서 해줘야함 !!
유저 조회 api를 postman으로 확인해보자
userIdx로 유저를 조회하는 api를 만들어 보겠다
provider에 getUsersByIdx 함수를 만들러 가보자
dao에도 가보겠다.
인덱스로 유저를 조회하는 api의 명세서를 작성해보자
7주차.. 넘 힘들었다.. 끝 !!!!!!!!!!!!!!!!!!!!!!!!!
'Server > UMC 2기 Server' 카테고리의 다른 글
[UMC] Server 8주차 **GET** 유저 피드 조회 API / 게시물 리스트 조회 API (0) | 2022.05.12 |
---|---|
[UMC] Server 7주차 유저 삭제 API (0) | 2022.05.07 |
[UMC] Server 7주차 Springboot 개발환경 구축하기 (0) | 2022.05.02 |
[UMC] Server 6주차 Restful API와 프레임워크 (0) | 2022.04.30 |
[UMC] Server 5주차 *실습* 데이터베이스 쿼리 실습 / 인스타그램 쿼리문 작성하기 (0) | 2022.04.29 |