Korzystanie z Delphi Seattle. Mam aplikację, która wykonuje różne wywołania REST. Niektóre z tych wywołań mogą zwrócić 10-20 wierszy za pośrednictwem JSON, podczas gdy inne mogą zwrócić 30-40 tysięcy wierszy. Ustawiłem serwer REST, aby zwracał wiersze w partiach po 1000. Kiedy dane wracają do mojego klienta, używam narzędzia RestDataAdapater, DataSource i zestawu danych klienta, aby ujawnić dane tak, jakby były tabelą lokalną. Ta część wydaje się działać dobrze. Jeśli znajdujemy się na końcu 1000 wierszy, zmieniam adres URL i żądam następnej partii 1000 wierszy.Delphi - Jak utworzyć ogólne wywołanie REST
Moje wyzwanie: Chciałabym to streścić, aby jedna procedura mogła obsłużyć wszystkie scenariusze (przynajmniej w przypadku wywołań GET). Częścią trudną jest jak obsłużyć zestaw danych 1000-wierszowych danych źródłowych/danych klienta? Przykład może pomóc w wyjaśnieniu ... Chciałbym móc wykonać coś takiego ...
...
genericREST_Get(baseURL, resource, suffix); // This would actually execute the REST call, where the components are in Datamodule DM1.
while not dm1.ds_Generic.DataSet.Eof do
begin
... some kind of processing
dm1.ds_Generic.DataSet.Next;
end;
Jak mogę obsłużyć przekraczanie progu rzędu 1000 wierszy? Gdy mój program wywołujący (pokazany powyżej) przechodzi z wiersza 1000 do 1001, interfejs API REST musi zażądać następnego zestawu 1000 wierszy od serwera. Chociaż wiem, JAK to zrobić, nie wiem, GDZIE to zrobić. Chcę, aby "uzyskać następne 1000 wierszy" w ogólnej procedurze (znanej jako standardowa procedura REST_Get). Nie chcę, aby każda z procedur wywoływania miała z tym problem.
Załóżmy, że wszystkie procedury będą TYLKO poruszać się do przodu, nigdy do tyłu.