如何将 F# ODATA 类型提供程序与 OAuth 授权一起使用



我有一个OData svc,需要Oauth令牌进行授权。元数据 URL 可在此处获得。

然而

let MySvc = ODataService<"https://wamsstageclus001rest-hs.cloudapp-int.net/API/$metadata?api-version=1.0">

返回错误 reading schema, 404

我错过了什么?如何使用 API?

FSharp.Data.TypeProviders中有一个错误.dll VS2012附带的关于如何将$metadata附加到URL的错误。

幸运的是,类型提供程序

在设计时"只是另一个库",因此为了解决此错误(以及其他一些类型提供程序问题),我们当前的计划是在带外发布更新的类型提供程序库。 从历史上看,对于VS2010,F#团队在VS发布后一两个月就完成了F#编译器/库源代码和powerpack的开源版本更新,因此,如果假设VS2012也是如此,这可能是我们向类型提供程序发布一些更新的可能时间。 (我目前无法提供更多的发布时间表信息。

您确定这是要使用的正确 URL 吗?通常,您提供服务的 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

最新更新