반응형
백엔드에서 status 객체를 관리하려면, 상태에 따라 적절한 상태 코드와 메시지를 반환해야 합니다. 예를 들어, Java로는 다음과 같이 처리할 수 있습니다.
예시: Java에서 상태 객체 생성
import java.util.List;
import java.util.Map;
import java.util.ArrayList;
import java.util.HashMap;
public class ApiResponse<T> {
private String id;
private Status status;
private Object data; // 단일 객체 혹은 복수 객체(빈 리스트 또는 맵 포함)
// 상태 클래스
public static class Status {
private String code;
private String message;
private String details;
// 생성자, getter, setter
public Status(String code, String message, String details) {
this.code = code;
this.message = message;
this.details = details;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getDetails() {
return details;
}
public void setDetails(String details) {
this.details = details;
}
}
// ApiResponse 생성자
public ApiResponse(String id, Status status, Object data) {
this.id = id;
this.status = status;
this.data = data;
}
// getter, setter
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
단일 객체 및 복수 객체 리턴 예시
단일 객체 리턴 예시
단일 객체는 기존처럼 그냥 하나의 객체를 반환합니다.
public class User {
private String name;
private int age;
// 생성자, getter, setter
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
복수 객체 리턴 (빈 리스트 사용)
복수 객체는 **List**나 **Map**을 사용하며, 데이터가 없을 경우 빈 컬렉션을 반환합니다.
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
public class ApiExample {
public static void main(String[] args) {
// 상태 정보
ApiResponse.Status status = new ApiResponse.Status("success", "Request was successful", null);
// 데이터가 있을 때 (단일 객체)
User user = new User("John Doe", 30);
ApiResponse<User> responseWithUser = new ApiResponse<>("12345", status, user);
// 데이터가 있을 때 (복수 객체)
List<User> users = Arrays.asList(
new User("John Doe", 30),
new User("Jane Smith", 25)
);
ApiResponse<List<User>> responseWithUsers = new ApiResponse<>("12346", status, users);
// 데이터가 없을 때 (빈 리스트)
ApiResponse<List<User>> responseWithoutUsers = new ApiResponse<>("12347", status, new ArrayList<>());
// 출력 예시: 단일 객체
System.out.println("Response with user: " + responseWithUser.getData());
// 출력 예시: 복수 객체
List<User> returnedUsers = (List<User>) responseWithUsers.getData();
returnedUsers.forEach(userItem -> System.out.println(userItem.getName()));
// 출력 예시: 데이터가 없을 때 (빈 리스트)
List<User> returnedEmptyUsers = (List<User>) responseWithoutUsers.getData();
System.out.println("Empty users list size: " + returnedEmptyUsers.size()); // 0
}
}반응형
'개발 > SPRINGBOOT' 카테고리의 다른 글
| REDIS 주의할점. (0) | 2024.10.06 |
|---|