Как отправить запрос Multipart/Form-Data, содержащий JSON и файлы между микросервисами в Spring Boot?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как отправить запрос Multipart/Form-Data, содержащий JSON и файлы между микросервисами в Spring Boot?

Сообщение Anonymous »

У меня есть два микросервиса, A и B, построенные с помощью Spring Boot.

Service A необходимо отправить Multipart /Form-Data < /code> запрос на службу B, который включает в себя: < /p> Код микро службы A для отправки

Код: Выделить всё

@FeignClient(name="${userServiceCustomer.name:userServiceCustomer}", url="${userService.url:http://hdsaison.swagger.io/v1}")
public interface UserServiceApiClientCustom {
@PostMapping(value = "/customer/{customerId}/documents", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
ResponseEntity createCustomerDocument(
@PathVariable("customerId") UUID customerId,
@RequestPart("request") CreateCustomerDocumentRequest request,
@RequestPart(value = "images", required = false) List images
);
}
< /code>
Код микро службы B для получения < /p>
@RestController
@RequiredArgsConstructor
public class CustomerController {
...
@PostMapping(
value = "/customer/{customerId}/documents",
consumes = MediaType.MULTIPART_FORM_DATA_VALUE
)
public ResponseEntity _createCustomerDocument(
@PathVariable UUID customerId,
@RequestPart("request") CreateCustomerDocumentRequest request,
@RequestPart(value = "images", required = false) List images
) {
var requestDTO = CreateCustomerDocumentRequestDTO.builder()
.customerId(customerId)
.request(request)
.images(images)
.build();

return ResponseEntity.status(HttpStatus.CREATED)
.body(customerService.createCustomerDocument(requestDTO));
}
...
< /code>
createCustomerDocumentRequest < /p>
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)

@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
public class CreateCustomerDocumentRequest extends BaseCustomerDocumentRequest {

public class BaseCustomerDocumentRequest {

private Integer documentId;

private DocumentCodeEnum documentCode;

private DocumentInputTypeEnum documentInputType;

private String insuranceCode;

private DocumentDetailResponse documentDetail;
< /code>
Ошибка на микрореализации A < /p>
feign.FeignException$BadRequest: [400 ] during [POST] to [http://localhost:8283/customer/51754521-faae-446f-aa66-0fd8ff773481/documents] [UserServiceApiClientCustom#createCustomerDocument(UUID,CreateCustomerDocumentRequest,List)]: [{"timestamp":"2025-06-07T18:36:00.604+00:00","status":400,"error":"Bad Request","path":"/customer/51754521-faae-446f-aa66-0fd8ff773481/documents"}]
< /code>
Ошибка на микрореализации B < /p>
2025-06-08 01:36:00.367+0700  INFO 14656 --- [nio-8283-exec-1] com.hdsaison.filter.CustomURLFilter      : Receive request: /customer/51754521-faae-446f-aa66-0fd8ff773481/documents
Method         : POST
Query          : null
Headers        : {content-length=372, host=localhost:8283, content-type=multipart/form-data; charset=UTF-8; boundary=1974bada0ee, connection=Keep-Alive, accept-encoding=gzip, accept=*/*, user-agent=okhttp/4.10.0}

2025-06-08 01:36:00.567+0700  WARN 14656 --- [nio-8283-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required part 'request' is not present.]
2025-06-08 01:36:00.668+0700  INFO 14656 --- [nio-8283-exec-1] c.h.advice.AppResponseBodyAdviceAdapter  : Return response: {"timestamp":"2025-06-07T18:36:00.604+00:00","status":400,"error":"Bad Request","path":"/customer/51754521-faae-446f-aa66-0fd8ff773481/documents"}
Что вызывает проблема?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... een-micros
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»