Durante a realização de um projeto na empresa onde trabalhava na data da publicação desse artigo, encontramos a necessidade de criar uma API dentro de um projeto Windows Forms, assim dando a possibilidade do navegador acessar o app desktop para configurá-lo e termos uma comunicação entre ambos.
Nesse contexto utilizamos o EmbedIO para solucionarmos esse problema e assim criarmos essa interação, entretanto, trabalhamos com objetos Json em camelCase pela convenção da Google.
O EmbendIO ainda não suporta a mesma configuração de serialização e deserialização do Newtonsoft sendo necessária a utilização do mesmo para podermos fazer essa configuração do EmbedIO.
Essa necessidade de usar o Newtonsoft veio após encontrar a seguinte issue no git deles, sendo assim tive que buscar por meios de como fazer e sendo um dev estágiario ainda sou muito apegado a buscar soluções no Google tendo a certeza que vou encontrar tudo, porém pela primeira vez na minha vida eu não encontrei nada. 😿
Após algumas tentativas e erro encontrei uma solução que é simples e prática e pode ser usada como um helper para uma aplicação que será usada multiplas vezes.
No site do EmbedIO não é mencionado que você pode trazer o body de uma requisição como uma string da seguinte forma:
var bodyAsString = await HttpContext.GetRequestBodyAsStringAsync();
Feito isso agora temos uma string que é fácilmente deserializada pelo Newtonsoft:
var config = Json.Deserialize<ConfigurationsRequestDto>(bodyAsString, JsonSerializerCase.CamelCase);
Passando o JsonSerializerCase.CamelCase
como parâmetro e assim resolvendo o mistério do título! 😼
Top comments (0)