Да, у вас может быть несколько путей REST-указателей, указывающих на один и тот же веб-сервис.
Если вы хотите оставить пути как есть, вы можете проверить путь запроса, используемый для вызова службы, через HttpRequest, т.е.:
var httpReq = base.RequestContext.Get<IHttpRequest>();
httpReq.PathInfo //or httpReq.RawUrl, httpReq.AbsoluteUri, etc.
То, как вы определяете тип запроса, заключается в просмотре заполненного запроса DTO, но нужно различать / недавний / и / популярный / , который следует хранить это в другом свойстве Request 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:
Нужна помощь по внедрению стека услуг