在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
開放數據協定(OData)簡化了在 Microsoft .NET 開發中建立和使用 RESTful API。 它提供了一种通过熟悉的 CRUD 操作查询和处理数据的标准化方法。(建立, 讀取, 更新, 刪除)運作。 本文探討了開放數據協議如何在 .NET 中精簡 API 開發,並提供示例和突出其主要優勢。 若要進一步了解 OData,您可以查看OData C# GitHub 儲存庫源代码。
OData 遵循標準慣例來構建 RESTful 網路 API,使用像 GET 和 POST 這樣的 URL 和 HTTP 動詞來定義操作。 它使用實體資料模型表示資料(電子郵件行銷)和 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 開發中創建更複雜的服務相關功能的基礎。 我們也可能根據情況使用集合或導航屬性。
以下是如何在 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」,並提供包括筆記型電腦和智能手機在內的靜態服務物件列表。 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查詢。
添加OData()方法使用 GetEdmModel()方法,該方法檢索用於查詢的數據模型,形成 OData 服務的基礎。此服務使用稱為實體數據模型的抽象數據模型(電子郵件行銷)定義公開的數據。 ODataConventionModelBuilder 類別通過預設命名約定生成 EDM,從而減少了代碼需求。 或者,開發人員可以使用 ODataModelBuilder 類來更好地控制 EDM。
運行服務後,您可以使用各種 OData 查詢選項查詢該服務,例如:
https://localhost:7131/odata/Service
https://localhost:7131/odata/Service
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF 是一個全面的 C# 程式庫,旨在簡化製作 PDF 文件的過程。將文件轉換為PDF, PDF頁面的分割,和從 PDF 中刪除頁面在 .NET 應用程式中。 它提供了廣泛的功能,包含從 HTML、CSS、圖片和 JavaScript 生成 PDF 的能力,使開發人員能夠輕鬆地將網頁內容轉換成高品質的 PDF 文件。 IronPDF 的直觀 API 與強大的渲染引擎,使開發者能夠簡化 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: {employee.FirstName} {employee.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: {employee.FirstName} {employee.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 提供全面的功能和支持,用於在 .NET 應用程式中進行強大的 PDF 操作。