Novidades do .NET 5: melhorias em HttpClient simplificando o consumo de APIs REST
Há alguns dias (mais precisamente em 13/09, um domingo) tivemos o anúncio de que foi disponibilizado o Release Candidate 1 do .NET 5:
Dentre os diversos itens listados nesta postagem do blog oficial da plataforma .NET, uma novidade acabou por me chamar bastante a atenção: a possibilidade de uso com a classe HttpClient dos Extensions Methods GetFromJsonAsync, PostAsJsonAsync e PutAsJsonAsync, funcionalidades estas declaradas no namespace System.Net.Http.Json e concebidas com o objetivo de simplificar a interação com APIs REST a partir de código .NET.
Todos aqueles familiarizados com a classe HttpClient reconhecem, quase que invariavelmente, a verbosidade em termos de código de ações simples como o envio de uma requisição HTTP do tipo GET para consumir uma API REST.
O exemplo a seguir com a classe ResultadoContador ilustra bem este ponto:
A tentativa de se consumir uma API REST que exponha um endpoint retornado os dados representando por ResultadoContador e empregando recursos do namespace System.Text.Json produzirá um código similar ao da próxima listagem:
Utilizando o método GetFromJsonAsync (namespace System.Net.Http.Json) podemos simplificar em muito a comunicação com tal API, obtendo assim um código bem mais enxuto:
- A instanciação de um objeto do tipo JsonSerializerOptions não será mais necessária;
- Ao invocar o método GetFromJsonAsync substituímos a chamada a GetAsync e a diversos outros métodos e propriedades em sequência (processo este que se encerrava com a consequente deserialização do objeto via JsonSerializer.Deserialize).
A imagem a seguir traz o resultado da execução deste último código: