Я пытаюсь выполнить патч с JsonServiceClient в стек API службы следующим образом:Content-Type должен быть «приложения/JSON-патч + JSON» JsonServiceClient ServiceStack
var patchRequest = new JsonPatchRequest
{
new JsonPatchElement
{
op = "replace",
path = "/firstName",
value = "Test"
}
};
_jsonClient.Patch<object>($"/testurl/{id}", patchRequest);
Но я получаю следующая ошибка:
Content-Type must be 'application/json-patch+json'
Ошибка ясно. Есть ли способ изменить тип контента перед выполнением запроса для JsonServiceClient?
Это запрос ПОКО в ServiceStack апи: реализация
[Api("Partial update .")]
[Route("/testurl/{Id}”, "PATCH")]
public class PartialTest : IReturn<PartialTestRequestResponse>, IJsonPatchDocumentRequest,
IRequiresRequestStream
{
[ApiMember(Name = “Id”, ParameterType = "path", DataType = "string", IsRequired = true)]
public string Id { get; set; }
public Stream RequestStream { get; set; }
}
public class PartialTestRequestResponse : IHasResponseStatus
{
public ResponseStatus ResponseStatus { get; set; }
}
Услуги:
public object Patch(PartialTest request)
{
var dbTestRecord = Repo.GetDbTestRecord(request.Id);
if (dbTestRecord == null) throw HttpError.NotFound("Record not found.");
var patch =
(JsonPatchDocument<TestRecordPoco>)
JsonConvert.DeserializeObject(Request.GetRawBody(), typeof(JsonPatchDocument<TestRecordPoco>));
if (patch == null)
throw new HttpError(HttpStatusCode.BadRequest, "Body is not a valid JSON Patch Document.");
patch.ApplyTo(dbTestRecord);
Repo.UpdateDbTestRecord(dbTestRecord);
return new PartialTestResponse();
}
Я использую Marvin.JsonPatch V 1.0.0 библиотеки.
Это не ошибка в ServiceStack, пожалуйста, обновите сообщение, чтобы включить реализацию ServiceStack Service. – mythz