[Practice] 관리자 API 만들기 (1)

2021. 4. 15. 00:40Spring/Practice

1. 문제

  • 사용자 목록과 사용자 수를 함께 반환하는 관리자 API
  • ResponseData의 구조를 다음과 같은 형식으로 작성하여 결과 반환
{
    "totalCount": N,
    "data" : user 목록 컬렉션
}

 

 

 

2. 풀이

- ResponseMessage.java

package com.example.jpa.sample.user.model;

import com.example.jpa.sample.user.entity.User;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class ResponseMessage {

    private Long totalCount;
    private List<User> data;
}

- ApiAdminUserController.java

package com.example.jpa.sample.user.controller;

import com.example.jpa.sample.user.entity.User;
import com.example.jpa.sample.user.model.ResponseMessage;
import com.example.jpa.sample.user.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RequiredArgsConstructor
@RestController
public class ApiAdminUserController {

    private final UserRepository userRepository;

    // 문제 1
    @GetMapping("/api/admin/user")
    public ResponseMessage userList() {

        Long totalUserCount = userRepository.count();
        List<User> userList = userRepository.findAll();

        return ResponseMessage.builder()
                .totalCount(totalUserCount)
                .data(userList)
                .build();
    }
}
728x90