2013-10-15 122 views
3

我正在構建一個網站,並使用WebAPI爲它創建了一個API。該API使用DotNetOpenAuth使用OAuth v1進行安全保護,並且所有工作都可以在iPhone應用程序調用API時正常工作。我想回過頭來讓Web的相關部分也使用API​​,以便evry總是通過API。使用WebAPI的一切,包括網站?

雖然我有點困惑,但如果我讓我的網站登錄通過API,將網站設置爲OAuth使用者,爲當前用戶獲取OAuth令牌,那麼我應該在網站上代碼在同一個盒子上向WebAPI發起http調用以調用傳遞我的OAuth令牌的API? (在HTTP身份驗證標頭)

這似乎是一個非常低效的方式讓網站調用AP​​I,因爲所有調用都需要服務器端進行HTTP調用,對我來說這聽起來不是特別可伸縮的?雖然我想使用OAuth來保護API,但我不確定這些替代方案。

回答

2

這是一個很好的問題,並保持來了(因爲你清楚地意識到有另一個網絡綁定跳的開銷):

我需要消耗自己的API在我的ASP.NET MVC或旁路API並直接進入業務邏輯?

我試圖在blog post(接近帖子末尾)解釋這一點。但是,總之:它取決於。如果你的API和MVC站點是同一個應用程序的一部分,那麼它們彼此相鄰,因爲它們都是表示層 - 正如我在文章中解釋的那樣。但是,如果您的API是SOA服務的表示層並被包括您的MVC網站在內的多個客戶端使用,那麼它必須是分開的。

就你而言,我傾向於將MVC 排列在一起您的Web API - 訪問相同的業務層。我相信這也可以解決您遇到的OAuth問題。