TsgcHTTP2Client › Metody › Patch
Wykonuje synchroniczne żądanie HTTP/2 PATCH, stosując częściową modyfikację zasobu docelowego.
function Patch(const aURL: string; const aSource: TStream): string;
| Nazwa | Typ | Opis |
|---|---|---|
aURL | const string | Bezwzględny URL zasobu, który ma być częściowo zaktualizowany. |
aSource | const TStream | Strumień zawierający dokument poprawek (na przykład treść JSON Patch lub JSON Merge Patch). |
Treść odpowiedzi zwrócona przez serwer zdekodowana jako ciąg znaków. (string)
W odróżnieniu od PUT, PATCH przesyła jedynie pola, które mają zostać zmienione. Należy upewnić się, że Request.ContentType odpowiada formatowi patch oczekiwanemu przez serwer (np. application/json-patch+json lub application/merge-patch+json).
oBody := TStringStream.Create('{"email":"new@example.com"}');
try
oClient.Request.ContentType := 'application/merge-patch+json';
vResponse := oClient.Patch('https://api.example.com/users/42', oBody);
finally
oBody.Free;
end;
procedure Patch(const aURL: string; const aSource: TStream; const aResponseContent: TStream);
| Nazwa | Typ | Opis |
|---|---|---|
aURL | const string | Bezwzględny URL zasobu, który ma być częściowo zaktualizowany. |
aSource | const TStream | Strumień zawierający ładunek poprawki. |
aResponseContent | const TStream | Strumień przechwytujący surową odpowiedź serwera. |
W pełni strumieniowany wariant. Odpowiedni, gdy dokument patch lub reprezentacja odpowiedzi są wystarczająco duże, że konwersja do ciągu znaków byłaby nieefektywna.
oIn := TFileStream.Create('patch.json', fmOpenRead);
oOut := TMemoryStream.Create;
try
oClient.Patch('https://api.example.com/users/42', oIn, oOut);
finally
oOut.Free;
oIn.Free;
end;