IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

OData em C# (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

O protocolo Open Data ( OData ) simplifica a criação e o consumo de APIs RESTful no desenvolvimento Microsoft .NET . Oferece uma abordagem padronizada para consultar e manipular dados por meio de operações CRUD (Criar, Ler, Atualizar, Excluir) já conhecidas. Este artigo explora como o Open Data Protocol simplifica o desenvolvimento de APIs em .NET, fornecendo exemplos e destacando seus principais benefícios. Para explorar mais sobre OData, você pode consultar o repositório GitHub do OData C# para obter o código-fonte.

OData C# (Como Funciona para Desenvolvedores): Figura 1 - OData C#- Protocolo de acesso a dados

OData segue as práticas padrão para a construção de APIs web RESTful, usando URLs e verbos HTTP como GET e POST para definir operações. Ele representa dados usando um Modelo de Dados de Entidade (EDM) e JSON ou AtomPub para codificação de mensagens. Embora o OData simplifique o desenvolvimento de APIs em comparação com o GraphQL, ele pode oferecer menos recursos avançados.

OData C# (Como Funciona para Desenvolvedores): Figura 2 - OData

Benefícios de usar OData no .NET

  • Padronização: OData impõe uma maneira consistente de definir modelos de dados de entidade, lidar com solicitações e formatar respostas. Isso reduz a complexidade do desenvolvimento e simplifica a integração do aplicativo cliente.
  • Capacidades Ricas de Consulta: OData oferece uma forma uniforme de consultar dados para realizar operações CRUD, filtragem ($filter), ordenação (Ordem Crescente/Ordem Decrescente)($orderby), e funcionalidades de paginação ($top, $skip), permitindo que os clientes recuperem conjuntos de dados específicos de forma eficiente.
  • Experiência de desenvolvimento aprimorada: As bibliotecas .NET para OData simplificam o desenvolvimento de APIs. Os desenvolvedores podem aproveitar componentes pré-construídos para roteamento, tratamento de consultas e serialização de dados, reduzindo a duplicação de código e o tempo de desenvolvimento.
  • Interoperabilidade: Clientes compatíveis com OData de diversas plataformas podem interagir perfeitamente com seu serviço OData baseado em .NET, promovendo uma integração de aplicativos mais ampla.

Introdução ao OData no .NET Framework

As bibliotecas .NET para OData melhoram a experiência do desenvolvedor, facilitando maneiras eficientes de manipular conjuntos de dados. Simplifica a criação e o consumo de APIs RESTful no desenvolvimento .NET . Oferece uma abordagem padronizada para consultar e manipular dados por meio de operações CRUD familiares (Criar, Ler, Atualizar, Excluir).

Configurando o OData em projetos .NET

Comece abrindo seu novo projeto no Visual Studio. Em seguida, acesse o Solution Explorer, clique com o botão direito do mouse no seu projeto e selecione "Gerenciar Pacotes NuGet ". Procure por Microsoft.AspNetCore.OData e instale-o. A versão atual do OData é 8.2.5.

Para instalar o OData no Console do Gerenciador de Pacotes NuGet , use o seguinte comando.

PM > Install-Package Microsoft.AspNetCore.OData

OData C# (Como Funciona para Desenvolvedores): Figura 3 - Instalar OData

Exemplo: Criando um serviço OData no ASP.NET Core

Vamos criar uma classe de modelo OData simples em uma aplicação ASP.NET Core . No código a seguir, a classe abaixo expõe uma lista de serviços que podem ser consultados usando a sintaxe OData.

public class Service
{
    public int Id { get; set; } 
    public string FirstName { get; set; }
    public decimal Price { get; set; }
}

Descrição do código

A classe Service representa uma estrutura de dados básica em C# para gerenciar um serviço. Inclui três propriedades: Id: Um identificador inteiro para o serviço. FirstName: Uma string representando o primeiro nome associado ao serviço. Price: Um valor decimal indicando o preço do serviço. Esta classe pode ser usada como um bloco de construção para criar funcionalidades mais complexas relacionadas ao serviço no desenvolvimento .NET. Também podemos usar propriedades de coleção ou de navegação, dependendo do cenário.

Veja como configurar um controlador OData em uma aplicação ASP.NET Core no Visual Studio para expor uma lista de serviços através de um endpoint OData padronizado. O exemplo a seguir demonstra uma implementação básica usando uma lista estática de serviços e habilitando funcionalidades de consulta OData na API Web:

using DemoOData.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OData.Query;
using Microsoft.AspNetCore.OData.Routing.Controllers;

namespace DemoOData.Controllers
{
    [Route("odata/[controller]")]
    public class ServiceController : ODataController
    {
        private static readonly List<Service> Products = new List<Service>
        {
            new Service { Id = 1, FirstName = "Laptop", Price = 6239.9M },
            new Service { Id = 2, FirstName = "Smartphone", Price = 2585.9M }
        };

        [HttpGet]
        [EnableQuery]
        public IActionResult Get() => Ok(Products);
    }
}

Descrição do código

O código fornecido define um ODataController chamado ServiceController em uma aplicação ASP.NET Core, permitindo consultar e manipular dados usando o protocolo OData. Ele roteia pedidos para odata/Service e serve uma lista estática de objetos Service, incluindo um laptop e um smartphone. O método Get, decorado com [EnableQuery], permite que clientes realizem consultas OData (filtro, ordenação, paginação) na lista de Produtos, retornando os resultados como um IActionResult para pedidos HTTP GET.

Registrar Serviços OData no Program.cs

Para integrar o OData em uma aplicação .NET 6, precisamos instalar e configurar os pacotes OData necessários. Isso envolve definir o modelo OData, configurar o middleware OData e configurar os serviços para suportar recursos do OData, como filtragem, ordenação e expansão.

using DemoOData.Models;
using Microsoft.AspNetCore.OData;
using Microsoft.OData.Edm;
using Microsoft.OData.ModelBuilder;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

static IEdmModel GetEdmModel()
{
    ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
    builder.EntitySet<Service>("Services");
    return builder.GetEdmModel();
}

builder.Services.AddControllers()
    .AddOData(options => options
        .AddRouteComponents("odata", GetEdmModel())
        .Select()
        .Filter()
        .OrderBy()
        .SetMaxTop(20)
        .Count()
        .Expand()
    );

Descrição do código

Este código configura o suporte a OData em uma aplicação .NET 6. Primeiro, importa namespaces necessários e cria uma instância WebApplicationBuilder. O método GetEdmModel define o modelo OData usando o ODataConventionModelBuilder, que especifica um conjunto de entidades para entidades Service. O método AddOData é então chamado para configurar os serviços OData, incluindo habilitar select, filter, order by, count, expand e definir um valor máximo de top de 20 para resultados de consulta. Essa configuração garante que o aplicativo possa lidar com consultas OData de forma eficaz.

O método AddOData() emprega o método GetEdmModel(), que recupera o modelo de dados usado para consulta, formando a base de um serviço OData. Este serviço utiliza um modelo de dados abstrato conhecido como Entity Data Model (EDM) para definir os dados expostos. A classe ODataConventionModelBuilder gera um EDM através de convenções de nomenclatura padrão, minimizando os requisitos de código. Alternativamente, os desenvolvedores podem utilizar a classe ODataModelBuilder para maior controle sobre o EDM.

Captura de tela do código

OData C# (Como Funciona para Desenvolvedores): Figura 4 - Código no Visual Studio

Executando o serviço

Após executar o serviço, você pode consultá-lo usando várias opções de consulta OData, como:

https://localhost:7131/odata/Service
Text

Saída do Programa

OData C# (Como Funciona para Desenvolvedores): Figura 5 - Saída do Serviço OData

Introdução ao IronPDF

IronPDF é uma biblioteca C# abrangente projetada para simplificar a conversão de arquivos para PDF , a divisão de páginas de PDF e a remoção de páginas de PDFs em aplicativos .NET . Oferece uma ampla gama de recursos, incluindo a capacidade de gerar PDFs a partir de HTML, CSS, imagens e JavaScript, permitindo que os desenvolvedores transformem facilmente conteúdo da web em documentos PDF de alta qualidade. Com sua API intuitiva e poderoso mecanismo de renderização, o IronPDF permite que os desenvolvedores simplifiquem os processos de geração de PDFs, facilitando a integração de recursos de geração dinâmica de documentos em seus aplicativos com facilidade.

OData C# (Como Funciona para Desenvolvedores): Figura 6 - IronPDF

Adicionando o IronPDF ao projeto

Para instalar o IronPDF no Visual Studio, acesse o Console do Gerenciador de Pacotes NuGet e use o seguinte comando.

PM > Install-Package IronPdf

Geração de PDF

Para gerar um documento PDF a partir de conteúdo HTML em uma aplicação .NET, podemos usar a classe ChromePdfRenderer de uma biblioteca como DinkToPdf ou similar. Este exemplo demonstra como criar um PDF com os detalhes do registro de um funcionário.

public record Employee (string FirstName, string LastName);

class Program
{
    static void Main(string[] args)
    {
        var employee = new Employee("Iron", "Developer");
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {employee.FirstName} {employee.LastName}</p>");
        pdf.SaveAs("PersonRecord.pdf");
    }
}

Este exemplo cria um registro simples de Funcionário e, em seguida, usa o IronPDF para gerar um documento PDF exibindo o nome da pessoa. Este vídeo demonstra como os registros em C# podem ser integrados perfeitamente à geração de PDFs em aplicações .NET .

OData C# (Como Funciona para Desenvolvedores): Figura 7 - Saída em PDF

Conclusão

OData simplifica o desenvolvimento e o consumo de APIs RESTful em .NET , fornecendo recursos padronizados de consulta e manipulação. Também podemos integrá-lo ao Entity Framework, aumentando a eficiência do desenvolvimento ao simplificar o acesso e o gerenciamento de dados. O OData simplifica o desenvolvimento de APIs, permitindo integração e interoperabilidade perfeitas em diversas plataformas, graças às suas ricas funcionalidades de consulta e à experiência aprimorada do desenvolvedor. Além disso, o IronPDF oferece recursos abrangentes e suporte para manipulação robusta de PDFs em aplicativos .NET .

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.