/// <inheritdoc/> public async Task <HttpResponse <TResponse> > PostAsync <TResponse>(HttpRequest request, RequestContext requestContext, CancellationToken cancellationToken) where TResponse : Resource, new() { PrepareRequest(request, requestContext); var body = _serializer.Serialize(request.Payload); var response = await _requestExecutor.PostAsync(request.Uri, request.Headers, body, cancellationToken).ConfigureAwait(false); EnsureResponseSuccess(response); var data = _serializer.Deserialize(PayloadOrEmpty(response)); var resource = _resourceFactory.CreateNew <TResponse>(data); return(CreateResourceResponse(response, resource)); }