2013-06-18 45 views
7

我們目前爲我們系統中的所有服務都有一個大的C#ServiceStack API項目。我想把它分成更小的API,它們都是單獨運行的,以便於部署和測試。非常類似於Mike Hadlow所描述的here使用ServiceStack作爲API Facade層

但是,而不是使用Nginx我想使用ServiceStack作爲反向代理。這個「外部」API將處理身份驗證問題,然後使用異步HTTP REST調用將任何傳入請求轉發給相關內部API。

但是,如何創建此服務轉發器?假設我有一個接受/ hello調用的內部API。如果我嘗試在外部API主機上創建自定義ServiceRunner,那麼我不能攔截任何呼叫。它仍然期望存在某些路由,所以對外部API調用/ hello失敗。我是否需要在外部API主機上創建dummy/hello路由以便能夠使用我自己的ServiceRunner攔截它們?看看ServiceStack的其餘部分,我確信有一個更清晰的方法。如果

獎勵積分仍可使用揚鞭:)

回答

1

在這個問題最初提出的時間相結合,有創造過這項服務基礎URL的根通配符路線沒有簡單的方法。即如果服務託管在根目錄下,則沒有簡單的方法來創建/ {*}通配符路由,如果該服務託管在另一個位置(例如/ api),則沒有簡單方法創建/ api/{ *}通配符路由。

然而,對於Fallback route has recently been added to ServiceStacksee detailed example implementation.)都支持使用備用路線,你可以代理所有無法識別的請求到後端,而不必一一列舉在ServiceStack項目。但是,不提供Swagger支持。