iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ASP.NET Core怎么构建OData查询Restful API
  • 196
分享到

ASP.NET Core怎么构建OData查询Restful API

2023-06-30 10:06:27 196人浏览 八月长安
摘要

这篇文章主要讲解了“asp.net Core怎么构建OData查询Restful api”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.net Core怎

这篇文章主要讲解了“asp.net Core怎么构建OData查询Restful api”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.net Core怎么构建OData查询Restful API”吧!

前言:

本文使用 .net core SDK 3.1 的版本。

OData 是 Open Data Protocol 的简写,

OData 允许以简单和标准的方式创建和使用可查询和互操作的 Restful API。

官方文档访问 OData - Basic Tutorial

创建 WEB API 项目,并引入 OData 相关的 NuGet 包:

dotnet pack Microsoft.Aspnetcore.OData -v 7.5.8

一、建构 OData 实体模型

在建构 OData 实体模型之前,需要先创建相关的 DTO

    public class Person    {        public int Id { get; set; }        public string Name { get; set; }        public int Age { get; set; }    }

随后建构 OData 实体模型

    public static class PersonModelBuilder    {        public static IEdmModel GetEdmModel()        {            var oDataBuilder = new ODataConventionModelBuilder();            oDataBuilder.EntitySet<Person>("Person");            return oDataBuilder.GetEdmModel();        }    }

二、配置 OData 中间件

配置 OData 服务

    public void ConfigureServices(IServiceCollection services)    {        // ......        services.AddOData();    }

配置 OData 中间件

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)    {        app.UseRouting();        app.UseEndpoints(endpoints =>        {            endpoints.Select().Filter().OrderBy().Count().MaxTop(10);            // 第一个参数 路由名称,第二个参数 路由前缀,第三个参数 创建OData实体数据模型的方法            // 通过这个方式创建了与OData相关联的路由            endpoints.MapODataRoute("odata", "odata", PersonModelBuilder.GetEdmModel());        });    }

三、OData 实现 Restful API 查询

创建一个 PersonController 控制器,并继承 ODataController。

给 Action 的特性增加上 [EnableQuery] 来表示当前 API 是 OData 协议的方法,

在 Action 的入参加上特性 [FromODataUri] 来表示当前入参来自 OData 格式的 Uri 中。

    public class PersonController : ODataController    {        private static readonly List<Person> PEOPLE = new List<Person>        {            new Person { Id = 1, Name = "张三", Age = 18 },            new Person { Id = 2, Name = "李四", Age = 19 },            new Person { Id = 3, Name = "王五", Age = 20 },            new Person { Id = 4, Name = "赵六", Age = 21 },        };        [HttpGet, EnableQuery]        public ActionResult Get()        {            var people = PEOPLE;            return Ok(people);        }        [HttpGet, EnableQuery]        public IActionResult Get([FromODataUri] int key)        {            var people = PEOPLE;            return Ok(people.FirstOrDefault(b => b.Id == key));        }    }

通过下面 Uri 访问查询全部数据的 API,

http://localhost:5000/odata/person?$select=name,age&$orderby=age desc&$count=true&$top=2&$skip=2

我们先看结果,我们可以得到如下 JSON

  {    "@odata.context": "http://localhost:5000/odata/$metadata#Person(Name,Age)",    "@odata.count": 4,    "value": [      { "Name": "李四", "Age": 19 },      { "Name": "张三", "Age": 18 }    ]  }

得到的结果不难看出,OData 查询 API 的 Uri 通过 $ 符号起始的参数来对 Action 返回的结果进行改造,进行排序,字段的筛选等等功能。
我们访问 @odata.context 参数的 Value 这个 Uri,我们可以看到该接口相关实体的详细详细。

通过下面 Uri 访问查询某条数据的 API,

http://localhost:5000/odata/person(1)

我们可以得到如下 jsON

  {    "@odata.context": "http://localhost:5000/odata/$metadata#Person/$entity",    "Id": 1,    "Name": "张三",    "Age": 18  }

感谢各位的阅读,以上就是“ASP.NET Core怎么构建OData查询Restful API”的内容了,经过本文的学习后,相信大家对ASP.NET Core怎么构建OData查询Restful API这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: ASP.NET Core怎么构建OData查询Restful API

本文链接: https://www.lsjlt.com/news/328371.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NET Core构建OData查询Restful API
    目录前言:一、建构 OData 实体模型二、配置 OData 中间件三、OData 实现 Restful API 查询参考文档前言: 本文使用 .NET Core SDK 3.1 的...
    99+
    2024-04-02
  • ASP.NET Core怎么构建OData查询Restful API
    这篇文章主要讲解了“ASP.NET Core怎么构建OData查询Restful API”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET Core怎...
    99+
    2023-06-30
  • 使用ASP.NET Web API构建Restful API
    目录一、前言二、获取所有数据三、获取详情四、新增数据五、修改数据六、删除数据七、特性路由(1) 基本路由映射(2) 路由映射参数(3) 多重特性路由(4) 缺省参数路由(5) 参数约...
    99+
    2024-04-02
  • ASP.NET Core之Web API怎么创建
    这篇文章主要介绍“ASP.NET Core之Web API怎么创建”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.NET Core之Web API怎么创...
    99+
    2023-06-30
  • Asp.Net Core调用第三方Open API查询物流数据的方法
    小编给大家分享一下Asp.Net Core调用第三方Open API查询物流数据的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  在我们的业务中不可避免要与...
    99+
    2023-06-07
  • ASP.NET Core怎么获取正确查询字符串参数
    今天小编给大家分享一下ASP.NET Core怎么获取正确查询字符串参数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-06-30
  • 如何使用 Golang 构建 RESTful API 并实现健康检查?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-16
  • 怎么创建ASP.NET Core Web应用程序
    本文小编为大家详细介绍“怎么创建ASP.NET Core Web应用程序”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么创建ASP.NET Core Web应用程序”文章能帮助大家解决疑惑,下面跟...
    99+
    2023-06-29
  • ASP.NET Core怎么使用EF创建模型
    这篇文章主要介绍“ASP.NET Core怎么使用EF创建模型”,在日常操作中,相信很多人在ASP.NET Core怎么使用EF创建模型问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP...
    99+
    2023-06-29
  • ASP.NET Core中的Razor页面怎么创建
    这篇文章主要介绍“ASP.NET Core中的Razor页面怎么创建”,在日常操作中,相信很多人在ASP.NET Core中的Razor页面怎么创建问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-29
  • 怎么在ASP.Net Core中实现健康检查
    小编给大家分享一下怎么在ASP.Net Core中实现健康检查,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!健康检查 常用于判断一个应用程序能否对 request...
    99+
    2023-06-14
  • PHP中怎么创建一个RESTful服务API。
    本篇文章给大家分享的是有关PHP中怎么创建一个RESTful服务API。,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Database Sam...
    99+
    2024-04-02
  • Django开发RESTful API怎么实现增删改查
    小编给大家分享一下Django开发RESTful API怎么实现增删改查,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数据库中有user表如下:新建一个Djang...
    99+
    2023-06-15
  • ASP.NET Core怎么使用EF创建关系模型
    今天小编给大家分享一下ASP.NET Core怎么使用EF创建关系模型的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-29
  • Asp.Net三层架构怎么搭建
    搭建Asp.Net三层架构可以按照以下步骤进行:1. 创建项目:在Visual Studio中创建一个新的Asp.Net项目。2. ...
    99+
    2023-09-08
    Asp.Net
  • php怎么写查询api接口
    在PHP中,可以使用curl函数或者file_get_contents函数来查询API接口。1. 使用curl函数:```php$u...
    99+
    2023-08-30
    php
  • navicat怎么查询表结构
    navicat 查询表结构方法:连接数据库、展开 "表" 节点、右键单击表、选择 "结构"。表结构信息包含:表名、行数、列信息(列名、数据类型、是否空值)、索引信息(索引名、索引类型、列...
    99+
    2024-04-23
    navicat
  • 怎么使用Flask构建简单的RESTful服务
    本篇文章给大家分享的是有关怎么使用Flask构建简单的RESTful服务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。    我们现在的...
    99+
    2023-06-05
  • ASP.NET Core怎么使用EF SQLite对数据库增删改查
    这篇文章将为大家详细讲解有关ASP.NET Core怎么使用EF SQLite对数据库增删改查,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1 新建ASP.NET Cor...
    99+
    2023-06-26
  • navicat怎么新建查询
    navicat中新建查询的方法:1、打开navicat管理工具;2、点击左上角“连接”,连接一个数据库;3、点击菜单栏“查询”按钮即可新建一个查询。具体操作步骤:打开navicat管理工具。打开navicat之后,在工具主页面左上角中找到“...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作