1

My ASP.NET Core 2.1 API app communicates with a third party API so I'm creating an ApiClient with generic CRUD methods in it.

The question is how I should handle a scenario where I got nothing from the API call -- I've seen cases where sometimes APIs return 204 but sometimes, they just return nothing at all with a status 200.

When I try to return null in case my response has nothing in it, I'm getting an error that says I can't do it because T may not be nullable.

Here's my code:

private readonly HttpClient _httpClient

public MyClass(HttpClient httpClient)
{
   _httpClient = httpClient;
}

public Task<T> GetMyData<T>()
{
   try
   {
      var response = _httpClient.GetStringAsycn("https://someApiUrl");

      // This is where I'm a bit stuck
      if(string.IsNullOrEmpty(response))
         return null; // <<-- Can't return NULL!

      var data = JsonConvert.DeserializeObject<T>(response);
      return data;
   }
   catch(Exception e)
   {
       throw new Exception(e.Message);
   }
}
Sam
  • 26,817
  • 58
  • 206
  • 383

0 Answers0