.NET 7 - Simplificando request Patch
Hoje veremos um recurso do .NET 7.0 que permite simplificar os requests Patch. |
Até o
.NET 6, era possível usar uma extensão fácil de usar em clientes HTTP para
solicitações POST e PUT.
Era possível utilizar os métodos PostAsJsonAsync e PutAsJsonAsync que levavam uma URL e um objeto que o método serializaria para JSON sem intervenção do desenvolvedor.
Infelizmente, isso não estava disponível para os requests Patch.
No .NET 7 isso foi corrigido e agora temos disponível o método PathAsJsonAsync.
Anteriormente era necessário serializar o objeto passado no corpo da requisição instanciando um objeto do tipo StringContent que exigia três parâmetros:
O objeto serializado em formato de texto, geralmente em JSON (o padrão)
A codificação, geralmente UTF8
O tipo de mídia, geralmente JSON (o padrão de uso)
Com isso geralmente teríamos um código da seguinte forma :
using
System.Text; using (HttpClient client = new HttpClient())using (HttpResponseMessage response = await client.PatchAsync("http://exemplo.com",new StringContent("{ \"Nome\" : \"Macoratti\" }", Encoding.UTF8, "application/json"))) using (HttpContent content = response.Content){ string result = await content.ReadAsStringAsync(); } |
A partir do .NET 7 podemos usar o método PatchAsJsonAsync, que vai funcionar da mesma forma que os métodos PostAsJsonAsync e PutAsJsonAsync, encapsulando a serialização, e , com isso o código fica da seguinte forma:
using
(HttpClient client =
new
HttpClient()) using (HttpResponseMessage response = await client.PatchAsJsonAsync("http://exemplo.com",new { Nome = "Macoratti" })) using (HttpContent content = response.Content) { string result = await content.ReadAsStringAsync(); } |
O que simplifica os requests usando Patch.
E estamos conversados.
"Porque pela graça sois salvos, por meio da fé; e isto não vem de vós, é dom
de Deus.
Não vem das obras, para que ninguém se glorie;"
Efésios 2:8,9
Referências: