anchor.diff:      function Put(Content: string): string;overload;
       procedure Put(Content: TStream; AHandler: TRestResponseHandler);overload;
       function Put(Entity: TObject): TObject;overload;
  +    function Put(Content: string; ResultClass: TClass): TObject;overload;
  +    function Put(Content: TStream; ResultClass: TClass): TObject;overload;
  +    function Put(Entity: TObject; ResultClass: TClass): TObject;overload;
   
       function Patch(Content: TStream): String;overload;
       function Patch(Content: string): string;overload;
       procedure Patch(Content: TStream; AHandler: TRestResponseHandler);overload;
       function Patch(Entity: TObject): TObject;overload;
  +    function Patch(Content: string; ResultClass: TClass): TObject;overload;
  +    function Patch(Content: TStream; ResultClass: TClass): TObject;overload;
  +    function Patch(Entity: TObject; ResultClass: TClass): TObject;overload;
   
       procedure Delete();overload;
       procedure Delete(Entity: TObject);overload;
  
positive.code:     Result := nil;
  end;
  
  function TResource.Patch(Content: TStream): String;
  begin
    Content.Position := 0;
    FContent.CopyFrom(Content, Content.Size);
  
    Result := FRestClient.DoRequest(METHOD_PATCH, Self);
  end;
  
  procedure TResource.Patch(Content: TStream; AHandler: TRestResponseHandler);
  begin
    Content.Position := 0;
    FContent.CopyFrom(Content, Content.Size);
  
    FRestClient.DoRequest(METHOD_PATCH, Self, AHandler);
  end;
  
  
negative.code:   vResponse := FRestClient.DoRequest(METHOD_PATCH, Self);
    if trim(vResponse) <> '' then
      Result := TJsonUtil.UnMarshal(Entity.ClassType, vResponse)
    else
      Result := nil;
  end;
  
  function TResource.Patch(Content: string; ResultClass: TClass): TObject;
  var
    vStringStream: TStringStream;
  begin
    vStringStream := TStringStream.Create(Content);
    try
      Result := Patch(vStringStream, ResultClass);
    finally
      vStringStream.Free;
    end;
  end;
  
  function TResource.Patch(Content: TStream; ResultClass: TClass): TObject;
  var
    vResponse: string;
  begin
    Content.Position := 0;
    FContent.CopyFrom(Content, Content.Size);
  
    vResponse := FRestClient.DoRequest(METHOD_PATCH, Self);
    if trim(vResponse) <> '' then
      Result := TJsonUtil.UnMarshal(ResultClass, vResponse)
    else
      Result := nil;
  end;
  
  function TResource.Patch(Entity: TObject; ResultClass: TClass): TObject;
  var
    vResponse: string;
  begin
    if Entity <> nil then
      SetContent(Entity);
    vResponse := FRestClient.DoRequest(METHOD_PATCH, Self);
    if trim(vResponse) <> '' then
      Result := TJsonUtil.UnMarshal(ResultClass, vResponse)
    else
      Result := nil;
  end;
  