我可以访问OData服务.现在我需要找到该服务的OData版本.$ metadata中有版本属性.但我不知道要哪一个拿起.
我需要把它从<edmx:Edmx Version="1.0">
或DataServiceVersion
或HTTP标头
例如,
http://services.odata.org/v4/%28S%28cy2mvwlr34teasunjfqlhlyg%29%29/TripPinServiceRW/ $ metadata将Version作为4.0返回,但在响应中不包含DataServiceVersion.但它有OData Version HTTP标头
http://services.odata.org/OData/OData.svc/ $ metadata将Version返回1.0,DataServiceVersion返回3.0.这不包含OData版本HTTP标头.但它有DataServiceVersion HTTP标头
http://services.odata.org/V3/Northwind/Northwind.svc/ $ metadata将Version返回1.0,DataServiceVersion返回1.0.这不包含OData版本HTTP标头.但它有DataServiceVersion HTTP标头
请告诉我如何使用服务元数据找到OData版本?或者还有其他方法可以找到它吗?
mit*_*tch 12
根据OASIS标准,每个例子:
Version
在上EDMX元素对于示例2和3,您需要阅读有关版本控制的说明,其中说明:
OData协议支持版本控制方案,使服务能够公开新功能和格式化版本,而不会破坏与旧客户端的兼容性.
OData请求和响应可以根据DataServiceVersion Header进行版本控制.
OData客户端应该使用MinDataServiceVersion和MaxDataServiceVersion头来指定可接受的响应DataServiceVersions的范围.
服务应该响应服务支持的最大版本小于或等于指定的MaxDataServiceVersion.
你会注意到OData实现方面的东西是疯狂的西方(很多MAY和SHOULD.就上面的例子如何符合这个规范而言:
Version
必须1.0
,但该DataServiceVersion
必须的OData协议的版本来消耗服务所需,并之一['1.0','2.0','3.0']
,按规格.DataServiceVersion
的请求1.0
,2.0
或者3.0
仍然收到符合给定版本标准的响应.因此,根据您要连接的服务,您需要进行不同的检查.也许流程如下:
<edmx:Edmx />
版本是否4.0
(你知道OData v4)<edmx:DataServices />
有MaxDataServiceVersion
属性(您现在有最高的可用OData版本)<edmx:DataServices />
有MinDataServiceVersion
属性(您现在拥有最低支持的OData版本)<edmx:DataServices />
有DataServiceVersion
属性(您现在拥有最低支持的OData版本) 归档时间: |
|
查看次数: |
5474 次 |
最近记录: |