Search code examples
javamicronaut

Unable to get response from API using Micronaut


I am trying to make a POST request using the Micronaut framework with Java. I have created a 'client' class that is called and makes the request. Here is the code:

@Singleton
public class ApiClient {
  private final HttpClient httpClient;
  private final URI uri;

  public ApiClient(@Client(URL) HttpClient httpClient) {
    this.httpClient = httpClient;
    uri = UriBuilder.of(API_URL).build();
  }

  Mono<List<ApiResponse>> fetchResponse() {
    HttpRequest<?> request = HttpRequest.POST(uri, BODY)
      .header("Authorization", API_KEY);
    return Mono.from(httpClient.retrieve(request, Argument.listOf(ApiResponse.class)));
  }
}

My problem is that I have no idea what the response from API is. As far as I can tell, the call is made. But because the data returns in a Flux object, I can't interrogate the object to find the response. My suspicion is that the POJO I'm trying to store the response in isn't working. I can't tell if this is the case though.


Solution

  • You need to subscribe to the publisher to actually make the request and get a response. There are several subscribe methods depending on what you want to do