URL パス パラメータを受け取る POST エンドポイントがあり、本文は送信された 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>
私の質問は次のとおりです。このようにリクエストを「平坦化」する方法はありますか? または、要求の 1 つのプロパティをメッセージ本文のルートとして指定しますか? つまり、おそらく:
[Route("/prefix/{Param1}", "POST")]
public class SomeRequest
{
public string Param1 { get; set; }
[MessageBody]
public List<SomeEntry> Entries { get; set; }
}
これは ServiceStack で何らかの方法で実行できますか?