1

我为拥有 DTO 的员工提供服务

[Route("/employee/{id}", "GET PUT DELETE")]
[Route("/employees", "POST")]
public class Employee : Person
{
    public Employee() : base() { 
        this.dependents = new List<Dependent>();
    }
    public List<Dependent> dependents { get; set; }

}

我想了解如何处理我只想返回家属集合的情况。我希望 url 是 /employee/{id}/dependents。作为 ServiceStack 的新手,我很难弄清楚如何将其映射到我的 EmployeeService 中的服务处理程序。非常感谢!

4

1 回答 1

0

我想了解如何处理我只想返回家属集合的情况。我希望网址是 /employee/{id}/dependents

首先,您需要提供与您想要的 url 匹配的路由:

[Route("/employee/{id}/dependents")]
public class Employee : IReturn<List<Dependent>>
{
    public Employee() { 
        this.dependents = new List<Dependent>();
    }

    public List<Dependent> dependents { get; set; }
}

我还鼓励您不要在 DTO 中使用继承,因为它隐藏了服务的意图和声明性结构。

您的服务实现应该非常简单:

public class EmployeeService : Service
{
    public List<Dependent> Get(Employee request)
    {
        return request.dependents; //just return the dependents collection?
    }
}
于 2013-05-22T23:26:36.777 回答