Javascript クライアントからの DTO があります。リクエストオブジェクトが空で送信しようとするとdeleteFromService
(新しく編集されたように見えます)。メソッドをpostToService
リクエストオブジェクトに変更すると、適切に入力されます。
3.9 API を使用しています。私はここで途方に暮れています。
サービス:
public object Post(Order request)
{
return _orderRepository.InsertOrder(request);
}
public object Delete(Order request)
{
_orderRepository.DeleteOrder(request.Uuid);
return true;
}
JS:
//Fails
serviceClient.deleteFromService("order", order, function () { }, deleteFailed);
//Works
serviceClient.postToService("order", order, function () { }, deleteFailed);
アップデート:
ServiceStackのソース コードに問題が見つかりました。POST の場合と同様に、DELETE を GET のように扱い、本文の代わりにリクエスト オブジェクトを作成します。
if (httpMethod == HttpMethods.Get || httpMethod == HttpMethods.Delete || httpMethod == HttpMethods.Options)
{
try
{
return KeyValueDataContractDeserializer.Instance.Parse(queryString, operationType);
}
}
これを行う際の問題は、ServiceStack JS クライアントが POST と同じロジックを使用して DELETE リクエストを作成し、送信するデータを本体 (技術的には jQuery XHR data
prop) に詰め込むことで、サーバーに方法がないことです。クライアントが送信しているメッセージを取得します。
私はこれを正しく読んでいますか?JS クライアントの削除は壊れていますか?