根据multiple文档sources,可以将路由定义为DTO上的属性。我有以下的DTO(最后一个是在不同的文件):路由属性被忽略
[Route("/hdos", "GET")]
public class GetHdos
{
public bool IncludeAdminUsers { get; set; }
}
[Route("/hdos/{Id}", "GET")]
public class GetHdo
{
public Guid Id { get; set; }
}
[Route("/hdos/{HdoId}/facilities", "GET")]
public class GetHdoFacilities
{
public Guid HdoId { get; set; }
}
通过以下服务一栋(最后一个是在不同的文件):
public object Get(GetHdos request)
{
return _hdos.GetAll(request.IncludeAdminUsers);
}
public object Get(GetHdo request)
{
return _hdos.GetById(request.Id)
}
public object Get(GetHdoFacilities request)
{
return _hdos.GetFacilities(request.HdoId);
}
任何调用
/hdos
/hdos/a82b955195e34bfda2fdde7da68f8992
/hdos/a82b955195e34bfda2fdde7da68f8992/facilities
返回Method not supported
。但是,如果我将它们称为类名称,则路由会被击中。有什么我失踪?我需要以某种方式在AppHost
中激活这些路线吗?
在你的AppHostBase构造函数中,你是否指定程序集来查找你的服务?也不确定你的意思是通过类名称来调用它们吗? – kampsj 2013-05-03 13:22:27
我确实添加了服务组件。我需要添加DTO组件吗?我的意思是如果我打电话给URL'/ gethdos'或'/ getHdo',那么第一个或第二个服务将被分别命中。这是默认的路由约定,即DTO类名称。 – Tyrsius 2013-05-03 15:16:28