ServiceStack - 具有多个DTO层的路由

时间:2014-03-07 07:44:17

标签: servicestack routes

我有RequestDTO在该类中有另一个DTO,它看起来像这样:

[Route("/TheDtoRequest", "GET")]
[Route("/TheDtoRequest/{do_something_here_to_fill_foobar}", "GET")]
public class TheDtoRequest
{
    public string Foo { get; set; }
    public int Bar { get; set; }
    public FooBar Foobar { get; set; }
}


public class FooBar
{
    public string AnotherFoo {get; set;}
    public int AnotherBar {get; set;}
}

如何使用AnotherFoo参数请求?

1 个答案:

答案 0 :(得分:2)

您可以使用JSV格式将GET请求中的FooBar参数填充到/TheDtoRequest。您可以了解JSV format here。 JSV格式(即类似JSON的分离值)是一种受JSON启发的格式,它使用CSV样式的转义来实现最小的开销和最佳性能。

  

/ TheDtoRequest富=你好&安培;酒吧= 1&安培; FooBar的= {AnotherFoo:的HelloWorld,AnotherBar:123}

因此,对/TheDtoRequest路由的查询会导致填充类。但是你也可以在路线中使用JSV。所以考虑到这条路线:

  

/ TheDtoRequest / {Foobar的}

查询将产生相同的填充对象:

  

/ TheDtoRequest / {AnotherFoo:的HelloWorld,AnotherBar:123}?美孚=你好&安培;酒吧= 1

或者这条路线:

  

/ TheDtoRequest / {美孚} / {酒吧} / {Foobar的}

     

/ TheDtoRequest /你好/ 1 / {AnotherFoo:的HelloWorld,AnotherBar:123}

more complex object represented as JSV here有一个很好的例子。

希望这有帮助。