1
resposta

OData

Estou refatorando uma Web API ASP.NET Core (2.1) e preciso retornar um JSON com um formato específico para a aplicação (REACT). Comecei a estudar OData para melhorar a qualidade do código no front e no backend. Mas esbarrei em um problema com a paginação.

Consulta atual: https://localhost:44387/api/customer?$select=companyname (sobre a tabela Customers do banco Northwind).

Como eu faço para conseguir um JSON no formato a seguir (usando paginação)?

{
    Total: "total de registros",
    Registros: [{customerID: "", companyName: "", ...}, ...]
}

Eu encontrei o comando: https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$count=true&$top=30&$skip=10 (https://stackoverflow.com/questions/30123094/how-to-get-only-odata-count-without-value). Mas na minha aplicação eu não tenho esse retorno do count.

1 resposta

Oii Daniel, como você está?

Peço desculpas por demorar a te responder.

Uma solução para o cenário que você apresentou é utilizando a biblioteca OData.AspNetCore.Extensions. Essa biblioteca fornece uma classe chamada ODataResult que permite retornar o JSON com a estrutura que você precisa, incluindo a paginação. Primeiro, você precisa instalar a biblioteca no seu projeto ASP.NET Core. Você pode fazer isso através do NuGet.

Todavia, vale ressaltar que como você postou sua pergunta há algum tempo é possível que a constante evolução da tecnologia impacte na resolução da sua dúvida. Sendo assim, caso queira se aprofundar neste tema e com conteúdos atualizados, recomendo o material abaixo:

Espero ter ajudado. Abraços e bons estudos!