首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何实现像官方示例服务这样的OData V4服务?

如何实现像官方示例服务这样的OData V4服务?
EN

Stack Overflow用户
提问于 2015-10-24 07:22:17
回答 2查看 3.6K关注 0票数 4

示例服务的意思是:http://services.odata.org/V4/Northwind/Northwind.svc/

我的问题是:

  1. 为什么这个服务有".svc“后缀?据我所知,现在只有两种方法可以在.Net平台上实现odata v4服务,即RESTier和WebAPI,参见http://odata.github.io/,但它们都没有".svc“。实际上,wcf数据服务有".svc",但wcf不支持odata v4。
  2. 此示例服务的响应主体是高度优化的,如下所示: HTTP/1.1 200确定缓存-控制:私有内容-长度:2015年内容-类型: application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8过期:星期六,2015年10月24日05:10:34格林尼治时间变化:*服务器:微软-IIS/8.0 X-内容-类型-选项: nosniff OData-版本: 4.0;X版本: 4.0.30319…{"@odata.context":"http://services.odata.org/V4/Northwind/Northwind.svc/$metadata","value":[{"name":"Categories","kind":"EntitySet","url":".....“。 只有一条线路,像wcfds一样,但是我的服务是这样的: HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache内容-Type: application/json;odata.metadata=minimal;字符集=utf-8到期:-1变化:接受-编码服务器: Microsoft-IIS/7.5 OData-版本: 4.0 X-AspNet-版本: 4.0.30319 X供电-通过: ASP.NET日期:星期六,2015年10月24日:56: 24格林尼治时间-长度: 364 { "@odata.context":"http://192.168.1.99:908/api/$metadata","value":[ {“名称”:“测试”,“种类”:“EntitySet”,“url”:“测试”} }{“TDefStoreEmp”:“EntitySet”,"url":"TDefStoreEmp“},{ "name":"TDefEmp",”TDefStoreEmp“:”EntitySet“,"url":"TDefEmp”},{ "name":"TDefStore",“TDefStore”:“EntitySet”,"url":"TDefStore“} 行太多了,一行怎么回事?
  3. 因此,我怀疑示例服务是基于wcfd的,但是它如何支持V4呢?事实上,我喜欢wcfd,因为它不需要任何控制器,我只想公开一个数据库,但不想在互联网上打开1433端口。

我的英语不好,请理解并帮助我,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-26 04:49:43

  1. 您说得对,这个演示服务是使用WCF数据服务实现的。对于基于web的演示服务,您可以参考:

http://services.odata.org/TripPinWebApiService

OData V4的WCF数据服务不受官方支持,因此建议使用WebAPI。

  1. 这是JSON的缩进,默认情况下是启用的。若要禁用缩进,请在您的webapi配置代码中添加以下内容: var formatters = ODataMediaTypeFormatters.Create(); foreach (formatters中的var格式化程序){ formatter.MessageWriterSettings.Indent = false;} config.Formatters.InsertRange(0,形成者);
  2. 源WCF数据服务在这里是可见的:https://github.com/OData/odata.net/tree/WCFDSV4

请注意,该实现确实与OData V4规范有一些差距。但是,如果您感兴趣,您可以自由地自己构建它或添加新功能。

正如建议的那样,建议使用WebAPI OData来设置OData V4服务。另外,您可以选择使用更类似wcfds样式的RESTier。

票数 2
EN

Stack Overflow用户

发布于 2019-08-26 10:41:49

如果您正在寻找TripPin OData示例,您可以在这里找到它:

https://github.com/OData/ODataSamples/tree/master/Scenarios/TripPin

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33315625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档