패스트캠퍼스 챌린지 9일차
1. 간단한 HTTP 테스트 만들기
이제까지 구현했던 createDeveloper를 실제로 POST Request를 전송시켜 정상적으로 작동이 되는지 테스트해본다.
먼저, createDeveloper에서 developer 빌드 시 들어가야하는 값들을 request로부터 받아올 수 있도록 수정한다.
dmaker.service.DMakerService
@Transactional
public CreateDeveloper.Response createDeveloper(CreateDeveloper.Request request) {
validateCreateDeveloperRequest(request);
// developer 빌드 시 필요한 값들을 request로부터 받아오도록 수정해준다.
Developer developer = Developer.builder()
.developerLevel(request.getDeveloperLevel())
.developerSkillType(request.getDeveloperSkillType())
.experienceYears(request.getExperienceYears())
.memberId(request.getMemberId())
.name(request.getName())
.age(request.getAge())
.build();
developerRepository.save(developer);
// Response에 있는 값들을 받아 return 해준다.
return CreateDeveloper.Response.fromEntity(developer);
}
CreateDeveloper의 dto에서는 entity로부터 값을 받아 Response를 빌드해줄 수 있도록 fromEntity 메서드를 만들어준다.
dmaker.dto.CreateDeveloper
// developer entity를 하나 받아와서 developer entity에 담겨있는 값들을
// 하나하나 Response에서 Build 하는 도중에 담아서 return해준다.
public static Response fromEntity(Developer developer) {
return Response.builder()
.developerLevel(developer.getDeveloperLevel())
.developerSkillType(developer.getDeveloperSkillType())
.experienceYears(developer.getExperienceYears())
.memberId(developer.getMemberId())
.build();
}
DMakerController에서는 DMakerService를 통해 발생한 Response를 return해준다.
dmaker.controller.DMakerController
@PostMapping("/create-developer")
public CreateDeveloper.Response createDeveleoper(
@Valid @RequestBody CreateDeveloper.Request request
) {
// GET /create-developer HTTP/1.1
log.info("GET /create-developer HTTP/1.1");
return dMakerService.createDeveloper(request);
}
여기까지 완료되면 이제 앱을 가동시키고 'create-developer'에 request-body를 포함시켜 POST 요청을 보낸다.
참고로 IntelliJ Ultimate 버젼을 사용하는 것이 아니면 IntelliJ 자체적으로 HTTP Test를 하는 기능을 사용할 수 없기 때문에 필자는 Chrome 확장 프로그램의 Advanced REST Client를 사용했다.
요청이 성공적으로 전송되었고 그에 따른 응답이 온 것을 확인할 수 있다.
본 포스팅은 패스트 캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
https://bit.ly/3FVdhDa
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr