我有一个需要Oauth令牌进行授权的OData svc。元数据网址可用here。
然而,
let MySvc = ODataService<"https://wamsstageclus001rest-hs.cloudapp-int.net/API/$metadata?api-version=1.0">
返回错误reading schema, 404
。
我错过了什么?我该如何使用API?
答案 0 :(得分:2)
FS2012附带的FSharp.Data.TypeProviders.dll中存在一个错误,该错误与如何将$metadata
附加到网址有关。
幸运的是,类型提供程序是设计时需要的“另一个库”,因此要解决此错误(以及其他类型的提供程序问题),我们当前的计划是在带外发布更新的类型提供程序库。从历史上来说,在VS2010之后,F#团队在VS发布后的一两个月内完成了F#编译器/库源和powerpack的开源发布更新,因此如果对VS2012假设相同,那么这可能是我们的可能时间。发布一些类型提供程序的更新。 (我现在不能再提供任何发布时间表信息。)
答案 1 :(得分:1)
您确定使用的是正确的网址吗?通常,您提供服务的URL,服务提供商自己查找元数据。但是,您的代码提供了元数据的URL。
因此,类型提供程序可能会向URL添加其他信息以便使用它,并且该服务不知道如何处理这些复合URL。
编辑:显然有人觉得我不清楚。https://wamsstageclus001rest-hs.cloudapp-int.net/API/$metadata?api-version=1.0
当ODataAdapter尝试获取元数据信息时将变为
https://wamsstageclus001rest-hs.cloudapp-int.net/API/$metadata?api-version=1.0$metadata
或类似的东西。如果您浏览到该特定站点,您将看到404错误。
但是,如果您提供ODataAdapter
https://wamsstageclus001rest-hs.cloudapp-int.net/API/
然后添加元数据不会导致404错误。您应该能够保留版本信息,因为它使用的是URL类而不是字符串操作(或者我希望如此),它看起来像下面的
https://wamsstageclus001rest-hs.cloudapp-int.net/API/?api-version=1.0