これが簡単な質問であることを願っています。以前に webapi または安らかなサービスを使用してパブリック API を作成したことがありません。そのため、複雑なオブジェクト パラメーターを使用する Put メソッドまたは Post メソッドを作成する場合、本文で送信される xml に名前空間情報を含める必要があることに気付きました。例えば。
public HttpResponseMessage Put(Guid vendortoken, [FromBody] ActionMessage message)
{
if (message == null)
return Request.CreateErrorResponse(HttpStatusCode.ExpectationFailed,
"actionmessage must be provided in request body.");
return Request.CreateResponse(HttpStatusCode.OK);
}
メッセージがnullではない場合、私のリクエストは次のようになります。
<ActionMessage
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/IntegrationModels">
<Message i:type="NewAgreement">
<AgreementGuid>3133b145-0571-477e-a87d-32f165187783</AgreementGuid>
<PaymentMethod>Cash</PaymentMethod>
</Message>
<Status>0</Status>
</ActionMessage>
もちろん、ここでの鍵はxmlnsです。一方で、名前空間は非常に一般的であるため、ベンダーが提供することは問題ではないと思いますが、一方で、本当に必要なのですか? そうでない場合、どうすればこれを修正できるので、名前空間を省略した場合にメッセージが入力された状態で戻ってきますか?
ああ、それらすべてにjsonを使用させることができればいいのに:(