简述
OData,即Open Data Protocol,是由微软在2007年推出的一款开放协议,旨在通过简单、标准的方式创建和使用查询式及交互式RESTful API。
类库
在.NET Core中想要使用OData功能的话需要添加Microsoft.AspNetCore.OData
包。
dotnet add package Microsoft.AspNetCore.OData
准备模型类
创建Edm模型
OData使用EDM,即Entity Data Model来描述数据的结构。在Startup文件中添加创建方法。
注册OData服务
在Startup文件的ConfigureServices方法里注册OData服务。
这里要注意的是在.NET Core 2.2里,默认已经有终结点,所以要使用OData的终结点的话需要将默认选项禁用掉。
注册OData终结点
同样在Startup文件里,在其Configure方法内将原来的注册路由内容改为注册OData的终结点。
显示元数据
运行程序后访问https://localhost:5001/odata/$metadata
地址,可以看到所有可用模型的元数据。
创建Controller
本文实例中不考虑数据库的操作,故而使用hard code方式构建必要的模型对象。
EnableQuery特性在需要高级查询的场景时必须添加。
查询
加入Controller之后,访问https://localhost:5001/odata/Books
地址,可得到所有Book数据。
访问https://localhost:5001/odata/Books(1)
地址,可得到key值为1的Book数据。
高级查询
如果想要使用OData查询的高级功能,可以在注册终结点时额外加上相应的配置。
如果想要按特定条件过滤数据内容的话也很容易:https://localhost:5001/odata/Books?$filter=Price%20le%2060
总结
不难看出,OData的真正魅力在于其对那些高级查询功能的支持,所以在创建RESTful API时,不妨考虑使用OData,这样应该能减少许多不必要的代码工作。
原文地址:https://www.cnblogs.com/kenwoo/p/10360260.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com