在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
开放数据协议 (OData) 简化了在 Microsoft .NET 开发中构建和使用 RESTful API。它通过熟悉的 CRUD 提供了一种标准化的方法来查询和操作数据。 (创建、读取、更新、删除) 操作。本篇文章探讨了开放数据协议如何简化 .NET 中的 API 开发,并提供了示例和突出其主要优点。要了解有关 OData 的更多信息,您可以查看 源代码 在GitHub的OData C#。
OData 遵循构建 RESTful Web API 的标准实践,使用 URL 和 HTTP 动词(如 GET 和 POST)定义操作。它使用实体数据模型表示数据 (EDM) 以及用于消息编码的JSON或AtomPub。虽然OData与GraphQL相比简化了API开发,但它可能提供的高级功能较少。
.NET 的 OData 库通过提供高效的数据集操作方式,提升了开发人员的体验。它简化了在 .NET 开发中构建和使用 RESTful API 的过程。它通过熟悉的 CRUD 操作提供了一种标准化的查询和操作数据的方法。 (创建、读取、更新、删除).
首先在 Visual Studio 中打开您的新项目。然后,导航到解决方案资源管理器,右键点击您的项目,并选择“管理 NuGet 包”。在这里搜索 Microsoft.AspNetCore.OData 并安装它。当前的 OData 版本是 8.2.5。
要在 NuGet 包管理器控制台中安装 OData,请使用以下命令。
Install-Package Microsoft.AspNetCore.OData
Install-Package Microsoft.AspNetCore.OData
IRON VB CONVERTER ERROR developers@ironsoftware.com
让我们在ASP.NET Core应用程序中创建一个简单的OData模型类。在以下代码中,下面的类将公开一个可以使用OData语法查询的服务列表。
public class Service
{
public int Id { get; set; }
public string FirstName { get; set; }
public decimal Price { get; set; }
}
public class Service
{
public int Id { get; set; }
public string FirstName { get; set; }
public decimal Price { get; set; }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
ODataModelBuilder 类代表了一个在 C# 中用于管理服务的基本数据结构。它包括三个属性。这里的属性名称是:Id:服务的整数标识符。FirstName:表示与服务关联的名字的字符串。Price:表示服务价格的十进制值。此类可以作为创建更复杂的服务相关功能的.NET开发的基础构件。我们还可以根据场景使用 Collection 属性或导航属性。
以下是在 Visual Studio 中的 ASP.NET Core 应用程序中设置 OData 控制器以通过标准化的 OData 端点公开服务列表的方法。下面的示例演示了使用静态服务列表和在 Web API 中启用 OData 查询功能的基本实现:
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);
}
}
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);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
提供的代码在一个ASP.NET Core应用程序中定义了一个名为ServiceController的ODataController,允许使用OData协议查询和操作数据。它将请求路由到“odata/Service”,并提供一个静态的Service对象列表,其中包括一台笔记本电脑和一部智能手机。带有装饰的Get方法 [启用查询]允许客户执行OData查询 (过滤、排序、分页) 在产品列表上,将结果作为IActionResult返回用于HTTP GET请求。
在Program.cs中注册OData服务
要将OData集成到.NET 6应用程序中,我们需要安装和配置必要的OData包。这涉及定义OData模型、设置OData中间件以及配置服务以支持OData功能,如过滤、排序和扩展。
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()
);
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()
);
IRON VB CONVERTER ERROR developers@ironsoftware.com
此代码在 .NET 6 应用程序中配置 OData 支持。首先,它导入必要的命名空间并创建一个 WebApplicationBuilder 实例。GetEdmModel 方法使用 ODataConventionModelBuilder 定义了 OData 模型,指定了 Service 实体的实体集。随后调用 AddOData 方法来配置 OData 服务,包括启用 select、filter、order by、count、expand,并为查询结果设置最大 top 值为 20。此设置确保应用程序可以有效地处理 OData 查询。
AddOData() 方法使用GetEdmModel() 方法,它检索用于查询的数据模型,构成OData服务的基础。此服务使用一种称为实体数据模型(Entity Data Model)的抽象数据模型。 (EDM) 定义公开的数据。ODataConventionModelBuilder 类通过默认命名约定生成一个EDM,最小化代码需求。或者,开发人员可以使用 ODataModelBuilder 类以获得对EDM的更大控制。
运行服务后,您可以使用各种OData查询选项来查询服务,例如:
https://localhost:7131/odata/Service
https://localhost:7131/odata/Service
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF 是一个全面的C#库,旨在简化 创建, 操控和 渲染 在 .NET 应用程序中处理 PDF 文档。它提供了广泛的功能,包括从 HTML、CSS、图像和 JavaScript 生成 PDF 的能力,使开发人员能够轻松地将网页内容转换为高质量的 PDF 文档。凭借其直观的 API 和强大的渲染引擎,IronPDF 使开发人员能够简化 PDF 生成流程,轻松地将动态文档生成功能集成到他们的应用程序中。
要在Visual Studio中安装IronPDF,请导航到NuGet包管理器控制台,并使用以下命令。
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
要在 .NET 应用程序中从 HTML 内容生成 PDF 文档,我们可以使用像 DinkToPdf 这样的库中的 ChromePdfRenderer 类。这个例子展示了如何创建包含员工记录详细信息的 PDF。
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: {person.FirstName} {person.LastName}</p>");
pdf.SaveAs("PersonRecord.pdf");
}
}
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: {person.FirstName} {person.LastName}</p>");
pdf.SaveAs("PersonRecord.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
此示例创建了一个简单的员工记录,然后使用IronPDF生成一个显示该人员姓名的PDF文档。这展示了C#记录如何在.NET应用程序中与PDF生成无缝集成。
OData 通过提供标准化的查询和操作功能,简化了在 .NET 中开发和使用 RESTful API 的过程。我们还可以将它与 Entity Framework 集成,通过简化数据访问和管理来提高开发效率。OData 简化了 API 开发,通过其丰富的查询功能和改进的开发者体验,实现了跨各种平台的无缝集成和互操作性。至于 IronPDF 全面的功能和支持。