私は C# で REST API を構築しています - そしていくつかの POST を設定しています - ここにインターフェースがあります:
[SecurityTokenValidator("Registered Users")]
[OperationContract]
[WebInvoke(ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml, UriTemplate = "camps/{campid}/markings/{token}", Method = "POST")]
MarkingDto InsertMarking(string campid, string token, MarkingDto markingDto);
そして、これが私のMarkingDtoです
[DataContract(Namespace = "FreeBeer")]
public class MarkingDto
{
[DataMember] public int Id;
[DataMember] public decimal Latitude;
[DataMember] public decimal Longitude;
[DataMember] public string MarkingType;
[DataMember] public DateTime DateTime;
}
Fiddler でテスト POST を作成する際に、RequestBody がアルファベット順になっていないことに気付きました。いくつかのアイテムが null またはゼロになります。たとえば、要求本文がそのようなものである場合、緯度の前に経度が来る場合、緯度はゼロ (0) になります。
<MarkingDto xmlns="BigGameLogic">
<Longitude>456</Longitude>
<Latitude>123</Latitude>
<MarkingType>Scrape</MarkingType>
</MarkingDto>
しかし、アルファベット順に保存すると、すべてがそこにあります。これは単なるフィドラーのことですか?それとも、私が見逃している簡単な解決策のために修正する必要があるものですか ;)