是的,你可以有多個REST-ful路徑指向同一個Web服務。
如果你想離開的路徑爲,是可以通過的HttpRequest檢查用於調用該服務的請求路徑,即:
var httpReq = base.RequestContext.Get<IHttpRequest>();
httpReq.PathInfo //or httpReq.RawUrl, httpReq.AbsoluteUri, etc.
你的工作方式是什麼類型的請求,通過查看填充的請求DTO - 但/最近/和/流行/區分你應該把它存放在另一個請求DTO屬性,然後檢查其值,即
[RestService("/items/{Type}")]
[RestService("/items/{Type}/{Page}")]
public class Items
{
public string Type { get; set; }
public int? Page { get; set; }
}
public class ItemsService : ServiceBase<Items>
{
public override object Run(Items request)
{
if (request.Type == "recent")
if (!request.Page.HasValue)
//path 1
else
//path 2
else if (request.Type == "popular")
if (!request.Page.HasValue)
//path 3
else
//path 4
}
}
這也是類似於這個StackOverflow的問題: Need help on servicestack implementation
可愛!我知道你會有一個很好的答案。那麼我的這項服務正瘋狂地來!基於RedisStackOverflow示例,因爲它非常相似。愛護ServiceStack! – robertmiles3
@ robertmiles3真棒,很高興聽到它:) IMO Redis支持的ServiceStack應用程序必將產生出色的用戶體驗 - 當您完成後,不要忘記將您的應用程序鏈接發佈到Google Group! – mythz