我有一个 POST 端点,它采用 URL 路径参数,然后正文是提交的 DTO 列表。
所以现在请求 DTO 看起来类似于:
[Route("/prefix/{Param1}", "POST")]
public class SomeRequest
{
public string Param1 { get; set; }
public List<SomeEntry> Entries { get; set; }
}
public class SomeEntry
{
public int ID { get; set; }
public int Type { get; set; }
public string Value { get; set; }
}
服务方法看起来像:
public class SomeService : Service
{
public SomeResponse Post(SomeRequest request)
{
}
}
如果通过 JSON 编码,客户端必须以这种方式对 POST 正文进行编码:
{
"Entries":
[
{
"id": 1
"type": 42
"value": "Y"
},
...
]
}
这是多余的,我希望客户端像这样提交数据:
[
{
"id": 1
"type": 42
"value": "Y"
},
...
]
如果我的请求 DTO 只是List<SomeEntry>
我的问题是:有没有办法以这种方式“扁平化”请求?或者将请求的一个属性指定为消息体的根?即也许:
[Route("/prefix/{Param1}", "POST")]
public class SomeRequest
{
public string Param1 { get; set; }
[MessageBody]
public List<SomeEntry> Entries { get; set; }
}
这在 ServiceStack 中是否可行?