I have 2 services ServiceA and ServiceB, ServiceB has one API called createDocument(@RequestParam("file") MultipartFile file). Now I want to call this API from ServiceA and I am using FeignClient and both services use Spring Boot.
My FeignClient looks something like this
@FeignClient(
name = "serviceB",
url = "com.serviceb.url",
configuration = {ServiceBErrorDecoder.class},
fallbackFactory = ServiceBFallbackFactory.class)
@Service
public interface ServiceB{
@PostMapping(value = "/documents")
ResponseEntity createDocument(@RequestParam("file") MultipartFile file);
}
And now, in ServiceA, I want to call this createDocument API. I can do that but problem is how can I create MultipartFile object and pass it? I have InputStream object having some content and I don't want to create physical file.
ServicA code
public void processObjects(Entity entity) throws JsonProcessingException {
SomeObject object = new SomeObject();
//setters
....
InputStream inputStream = new ByteArrayInputStream(
Objects.requireNonNull(SerializationUtils.serialize(object)));
InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
//How do I create MultipartFile object from this InputStream?
serviceB.createDocument(**multipartfile**)
}
Please help. Thank you