是的,你可以有多个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