Project/Connect Plc to Server

[Connect PLC to Server] Postman으로 MultipartFile, RequestBody 요청 테스트

lakelight 2022. 11. 29. 18:10
728x90
반응형

 

모듈을 통해 이미지 파일과 API에 필요한 데이터를 받아서
로직 처리를 하는 API를 제작하고 있었습니다.

아직 이미지파일과 데이터를 받는 작업은 완료되지 않아서

포스트맨 프로그램을 통해 테스트 해보려고 했습니다. 그런데
MultipartFile과 RequestBody를 한번에 요청할 수 없었습니다.

 

@RequestPart

Cpmtemt-type이 'multipart/form-data'와 관련된 경우 사용합니다. 즉, @RequestBody가 필요하지만 Binary Stream이 포함되는 MultipartFile과 같은 경우에 사용할 수 있습니다.

MultipartFile도 사용가능하고 RequestBody에 포함되는 부분도 content-type을 명시하고 사용할 수 있기 때문에 @RequestPart를 사용하고 Postman에서 Body에 form-data를 통해 요청을 해보겠습니다.

 

적용한 Controller Code

@PostMapping("")
public ResponseEntity<?> createCapture(
        @RequestPart("captureDto") CaptureDto.CreateCaptureRequestDto dto,
        @RequestPart("originalImg") MultipartFile originalImg,
        @RequestPart("lastImg") MultipartFile lastImg){
    captureService.captureAlign(dto, originalImg, lastImg);

    return new ResponseEntity<> (
            new ResponseWrapper(
                    request,
                    HttpStatus.OK,
                    true,
                    "촬영 정보를 등록했습니다."), HttpStatus.OK);
}

 

Postman 테스트 화면

{
    "timestamp": "2022-11-29 11:27",
    "path": "/api [POST]",
    "status": "OK",
    "code": 200,
    "isSuccess": true,
    "message": "촬영 정보를 등록했습니다.",
    "responseData": []
}

 

마무리

이미지와 RequestBody를 동시에 받아서 테스트를 해야할 때는
@RequestPart 어노테이션을 사용하면 된다는 사실을 알게되었습니다.

오늘도 한가지를 배울 수 있는 하루라서 감사합니다.

포스팅 읽어주셔서 감사합니다.

 

 

[참고]

1. RequestBody vs RequestPart vs RequestParam vs ModelAttribute

2. Postman을 이용한 File, Dto 동시 Post요청

728x90
반응형

'Project > Connect Plc to Server' 카테고리의 다른 글

[Connect Plc to Server] N + 1 Problem 해결 사례  (2) 2022.12.07