相关服务的ServiceStack URL

时间:2013-01-29 04:17:28

标签: odata servicestack

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

OData示例将是

之类的网址
http://localhost:8080/owind.svc/Categories(2)/Products

这将找到与第2类相关的所有产品。

ServiceStack的一个等效示例似乎是您要为ProductService创建一个Request DTO并设置如下所示的路由:

[Route("/Products")]
[Route("/Products/{Id}")]
[Route("/Categories/{Category}/Products")]
public class Products
{
    public string Id { get; set; }
    public string Category { get; set; }
}

(忽略提到的问题分离here,上述属性至少清楚地说明了我的要求。)

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

所以我想知道,这是在ServiceStack中做这种事情的最佳和最具扩展性的方式,还是有一些我缺少的捷径?考虑创建支持数百个表的服务,如果存在某种快捷方式,如果没有附加字符串,则可能会有所帮助。

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

不知道是否可以设想超出一个等级......例如

.../Employee/1/Orders/Customers

这将使您获得与员工#1签订订单的每位客户。大规模手动实施这一概念似乎令人望而却步。不确定是否存在支持或反对的SOA参数,但这也很好。

为了清楚起见,不应该假设底层数据存储或访问库。

0 个答案:

没有答案