2012-07-08 28 views
2

我有一個OData svc,需要Oauth令牌進行授權。元數據網址可用here如何使用具有OAuth授權的F#ODATA TypeProvider

然而,

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

返回錯誤reading schema, 404

我錯過了什麼?我如何使用API​​?

+0

做OdataServuce <@「https:// .....」>工作嗎?這應該會停止編譯器解釋轉義序列 – 2012-07-08 23:54:21

+1

嘗試使用'%24metadata'而不是'$ metadata' - URL編碼101. – ildjarn 2012-07-09 04:08:14

+0

這些都不起作用。 – 2012-07-09 14:48:04

回答

1

您確定這是使用的正確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 
2

有一個在FSharp.Data的錯誤。與VS2012一起發佈的TypeProviders.dll有關如何將$metadata附加到URL。

幸運的是,類型提供者在設計時只是'另一個庫',所以爲了解決這個bug(以及其他一些類型的提供者問題),我們目前的計劃是發佈一個更新的類型提供程序庫。從歷史上看,在VS發佈之後的一兩個月內,F#團隊已經完成了F#編譯器/庫資源和powerpack的開源版本更新,所以如果對VS2012採取相同的做法,這對我們來說可能是一個可能的時間向類型提供者發佈一些更新。 (目前我無法再提供發佈日程安排信息。)