Sử dụng Delphi Seattle. Tôi có một ứng dụng mà làm cho các cuộc gọi REST khác nhau. Một số cuộc gọi này có thể trả về 10-20 hàng qua JSON, trong khi một số khác có thể trả về 30-40 nghìn hàng. Tôi đã đặt máy chủ REST của mình lên để trả về các hàng theo lô 1.000. Khi dữ liệu trở lại khách hàng của tôi, tôi sử dụng RestDataAdapater, DataSource và Tập dữ liệu khách hàng để hiển thị dữ liệu như thể nó là một bảng cục bộ. Phần này dường như hoạt động tốt. Nếu chúng ta đang ở cuối hàng 1000, thì tôi thay đổi URL và yêu cầu hàng loạt 1.000 hàng tiếp theo.Delphi - Cách tạo Cuộc gọi REST Chung
Thách thức của tôi: Tôi muốn tóm tắt điều này để một thói quen có thể xử lý tất cả các tình huống (ít nhất là cho các cuộc gọi GET). Các phần phức tạp là làm cách nào để xử lý dữ liệu nguồn/khách hàng đặt 1.000 vấn đề hàng? Một ví dụ có thể giúp làm rõ ... Tôi muốn có thể thực hiện một cái gì đó như thế này ...
...
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;
Làm cách nào để xử lý vượt ngưỡng 1000 hàng? Khi chương trình gọi điện của tôi (hiển thị ở trên) đi từ hàng 1000 đến 1001, API REST cần phải yêu cầu tập hợp 1000 hàng tiếp theo từ máy chủ. Trong khi tôi biết LÀM THẾ NÀO để làm điều đó, tôi không biết LÀM VIỆC. Tôi muốn "có được 1000 hàng tiếp theo" để được trong thói quen chung (aka thói quen genericREST_Get). Tôi không muốn mỗi thói quen gọi điện thoại phải đối phó với điều đó.
Giả sử tất cả các thói quen sẽ CHỈ tiến lên phía trước, không bao giờ lùi.