SpringBoot 메세지 발송/조회 API 설계 2 (Entity, DB, Controller, Service, POSTMAN)

hunseop song·2023년 5월 21일
0

신입 기록

목록 보기
2/4

✔ Entiry, DB


이 코드는 lombok 어노테이션을 사용하여 자동으로 생성되는 생성자, 게터, 세터 등을 포함하는 Java 클래스입니다.

•@Data: @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 어노테이션을 포함하는 대표적인 롬복 어노테이션입니다. 이 어노테이션을 사용하면 클래스에서 필요한 메소드들을 자동으로 생성해줍니다.
•@Builder: 객체를 생성하면서 값들을 설정하는데 사용되는 빌더 패턴을 쉽게 사용할 수 있도록 도와주는 롬복 어노테이션입니다.
•@AllArgsConstructor: 모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성하는 롬복 어노테이션입니다.
•@NoArgsConstructor: 인자 없는 생성자를 자동으로 생성하는 롬복 어노테이션입니다.
•@Entity: JPA 엔티티 클래스임을 나타내는 어노테이션입니다.
•@Table(name = "mms_messages"): 데이터베이스에서 매핑될 테이블의 이름을 지정합니다.
•@Id: 해당 필드가 엔티티의 식별자(primary key)임을 나타내는 어노테이션입니다.
•@GeneratedValue(strategy = GenerationType.IDENTITY): 엔티티 식별자를 자동으로 생성하기 위한 어노테이션입니다. IDENTITY 전략을 사용하여 데이터베이스에서 자동으로 식별자를 생성합니다.
•@Lob: 대용량 데이터를 매핑하기 위한 어노테이션입니다. byte[] 형식으로 대용량 데이터를 저장합니다.
이 클래스는 MMS 메시지를 나타내는 엔티티이며, 필드들은 해당 MMS 메시지의 정보를 저장합니다. byte[] 형식의 필드는 이미지 파일과 비디오 파일을 저장하기 위한

✔ Service


Service 클래스는 데이터베이스와의 상호작용을 담당하고, 예외 발생 시 적절한 로깅을 수행하여 안정적인 서비스를 제공하기 위해 작성하였습니다.

해당 클래스는 @Service 어노테이션을 사용하여 스프링의 서비스 빈으로 등록되어 사용됩니다.

Service는 Repository 인터페이스를 사용하여 데이터베이스와 상호작용합니다. repository 필드는 @Autowired 어노테이션을 사용하여 스프링에서 자동으로 주입됩니다.

save 메서드는 Mms객체를 저장하기 위해 repository.save() 메서드를 사용합니다.

findByReceiverTelNo 메서드는 수신번호를 통해 조회하였습니다.. 만약 예외가 발생하면 logger.error() 메서드를 사용하여 로그에 에러를 기록하고 예외를 다시 던지게 됩니다.

✔ Controller - Post

받아들이고, 처리하는 역할을 합니다.

@PostMapping과 @RequestBody 어노테이션을 사용하여 요청 바디를 Mms 객체로 매핑합니다. 그리고 요청에서 받은 Mms 객체를 이용하여 필요한 유효성 검사를 수행합니다. 만약 필요한 입력 값이 없거나, 전화번호나 파라미터 형식이 잘못된 경우, 400 Bad Request 에러를 반환하고 요청을 처리하지 않습니다.

그 다음, Service 객체를 이용하여 Mms 객체를 데이터베이스에 저장합니다. 그리고 ,ㄴervice 객체를 이용하여 저장된 MmsMessage 객체를 대상으로 MMS 메시지를 보내고, 결과를 확인합니다. 결과가 성공적으로 도착한 경우, 200 OK와 함께 응답을 반환하고, 실패한 경우, 500 Internal Server Error와 함께 응답을 반환합니다.

마지막으로, 반환된 응답은 클라이언트에게 전달됩니다. 이 메소드는 RESTful API 요청에 응답하기 위해 구현되었습니다.

✔ Test

✔ Controller - Get

위 코드는 GET 요청을 처리하는 메소드로, /api/v1/message/mms/{receiverTelNo} 경로에 대한 요청을 처리한다.

receiverTelNo는 URL 경로에서 추출된 매개변수이며, @PathVariable 어노테이션을 통해 매개변수로 사용된다.

메소드 내부에서는 mmsMessageService를 이용하여 receiverTelNo에 해당하는 MMS 메시지를 조회한다. 조회 결과가 존재하면, 조회된 MMS 메시지를 이용하여 응답 메시지를 생성한다. 생성된 응답 메시지에는 code, sendCode, message 정보가 포함되며, sendCode는 조회된 MMS 메시지의 userKey 값으로 설정된다. message 정보는 callback과 contents 값을 갖는 맵 객체이다.

조회 결과가 존재하지 않는 경우에는 code와 message 정보를 갖는 응답 메시지를 생성하여 반환한다.

메소드 실행 중 발생할 수 있는 예외는 처리되지 않고, 예외 정보는 로그에 출력된다.

✔ Test

profile
신입개발자 메모장

0개의 댓글