개별 사용자의 상세보기 기능 추가
API를 작성하기 전에
apigateway-service에서 라우트 uri 설정을 /user-service를 호출하여 진행되기 때문에
user-service 프로젝트 > controller > UserController.java
requestMapping으로 공통적으로 설정해준다.
@RequestMapping("/user-service")
상세보기 및 회원조회 추가
vo > ResponseUser.java 수정
package com.example.userservice.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.util.List;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResponseUser {
private String email;
private String name;
private String userId;
private List<ResponseOrder> orders;
}
vo > ResponseOrder.java 추가
package com.example.userservice.vo;
import lombok.Data;
import java.util.Date;
@Data
public class ResponseOrder {
private String productId;
private Integer qty;
private Integer unitPrice;
private Integer totalPrice;
private Date createAt;
private String orderId;
}
service > UserService 인터페이스 아래 기능 추가
상세보기 및 회원조회
package com.example.userservice.service;
import com.example.userservice.dto.UserDto;
import com.example.userservice.repository.UserEntity;
import java.util.List;
public interface UserService {
UserDto createUser(UserDto userDto);
UserDto getUserByUserId(String userId);
List<UserEntity> getUserByAll();
}
service > UserSeriveImpl 기능 구현
@Override
public UserDto getUserByUserId(String userId) {
UserEntity userEntity = userRepository.findByUserId(userId);
if(userEntity == null) throw new UsernameNotFoundException("User not found");
UserDto userDto = new ModelMapper().map(userEntity, UserDto.class);
List<ResponseOrder> orders = new ArrayList<>();
userDto.setOrders(orders);
return userDto;
}
@Override
public List<UserEntity> getUserByAll() {
return userRepository.findAll();
}
controller > UserController.java > GET getUsers 추가
// 회원 전체 목록 조회
@GetMapping("/users")
public ResponseEntity<List<ResponseUser>> getUsers() {
List<UserEntity> userList = userService.getUserByAll();
List<ResponseUser> result = new ArrayList<>();
userList.forEach(user -> {
result.add(new ModelMapper().map(user, ResponseUser.class));
});
return ResponseEntity.status(HttpStatus.OK).body(result);
}
결과 보기
POST users로 user 생성 후 GET 확인 해보기
List에 담겨있는 user 정보를 확인할 수 있습니다.
회원 정보 조회
controller > UserController.java > GET getUser 추가
// 회원 정보 조회
@GetMapping("/users/{userId}")
public ResponseEntity<ResponseUser> getUser(@PathVariable("userId") String userId) {
UserDto userDto = userService.getUserByUserId(userId);
ResponseUser returnUser = new ModelMapper().map(userDto, ResponseUser.class);
return ResponseEntity.status(HttpStatus.OK).body(returnUser);
}
결과확인!
다음 게시글에서는 카탈로그 목록를 조회할 수 있는 마이크로 서비스를 만들겠습니다.
SpringBoot MSA (12) - MicroService / Order 서비스 생성 (1) | 2023.10.17 |
---|---|
SpringBoot MSA (11) - MicroService / Catalog 서비스 생성 (0) | 2023.10.17 |
SpringBoot MSA (10) - MicroService / UserService API Gateway 처리 (0) | 2023.10.17 |
SpringBoot MSA (10) - MicroService / UserService 비밀번호 암호화 (3) (0) | 2023.10.17 |
SpringBoot MSA (10) - MicroService / UserService DB API (2) (0) | 2023.10.17 |
댓글 영역