스프링 관련/스프링 프레임워크
API 만들 때
문자메일
2022. 4. 4. 01:42
api를 만들 때는 항상 entity를 파라메타로 받게 구현하지 않는다. entity를 외부에 노출해서도 안된다.
케이스별 dto를 만들어서 사용한다.
아래 예시 코드처럼 Response를 구현한다.
@GetMapping(path = "/api/v2/members")
public Result memberV2(){
List<Member> findMembers = memberService.findMembers();
List<MemberDto> collect = findMembers.stream()
.map(m -> new MemberDto(m.getName()))
.collect(Collectors.toList());
return new Result<List<MemberDto>>(collect.size(), collect);
}
@Data
@AllArgsConstructor
static class Result<T>{
private int count;
private T data;
}
@Data
@AllArgsConstructor
static class MemberDto{
private String name;
}