servicestack,Odata,servicestack" /> servicestack,Odata,servicestack" />

Odata 相关服务的ServiceStack URL

Odata 相关服务的ServiceStack URL,odata,servicestack,Odata,servicestack,使用,我正在寻找通过以类似于OData的方式组合URL来访问相关服务的方法 一个例子是像这样的URL http://localhost:8080/owind.svc/Categories(2)/Products 这将找到与类别2相关的所有产品 ServiceStack的一个等效示例似乎是,您将为ProductService创建一个请求DTO,并设置如下路由: [Route("/Products")] [Route("/Products/{Id}")] [Route("/Categories/{

使用,我正在寻找通过以类似于OData的方式组合URL来访问相关服务的方法

一个例子是像这样的URL

http://localhost:8080/owind.svc/Categories(2)/Products
这将找到与类别2相关的所有产品

ServiceStack的一个等效示例似乎是,您将为ProductService创建一个请求DTO,并设置如下路由:

[Route("/Products")]
[Route("/Products/{Id}")]
[Route("/Categories/{Category}/Products")]
public class Products
{
    public string Id { get; set; }
    public string Category { get; set; }
}
(忽略所提到的关注点和问题的分离,上述属性至少清楚地说明了我在问什么。)

然后在ProductService中,您将支持通过主键或外键查找产品。我在ServiceStack.Northwind.ServiceModel示例项目的Northwind.ServiceModel.Operations.Orders类中看到了一些类似的内容

所以我想知道,这是在ServiceStack中做这类事情的最好的、可伸缩性最好的方法,还是我缺少了一些捷径?考虑一下创建支持数百个表的服务的规模,如果存在某种快捷方式,并且没有附加字符串,那么可能会有所帮助

我可以想象一个系统,在这个系统中,您可以根据DTO中的任何内容自动生成路由,尽管您需要做一些从DTO属性名称(通常是单数)到路由(通常是复数)的映射

也不知道是否可以将其扩展到一个级别之外……例如

.../Employee/1/Orders/Customers
这会让你得到每一个与员工1有订单的客户。大规模手动实现这一点的想法似乎令人望而却步。不确定是否有支持或反对SOA的论据,但这也很好


需要明确的是,不应假设基础数据存储或访问库。

在上对一些相关问题进行了深入而有趣的讨论。Alex James也在评论中出现了一些有趣的链接,如果你沿着这条路走下去,这些链接可能会有所帮助。