Я разработал Python API версии 3 из версии 2, код, и все остается прежним, за исключением нескольких запрашиваемых данных, но предложение WHERE остается одинаковым для обеих версий, когда я пытаюсь запросить данные непосредственно на sfdc, он дает мне одинаковый номер или записи, которые означает, что с запросом нет проблем, но ответ, который я получаю для версии 3, составляет 125 записей, а для версии 3 - 250 записей. Это что-то связано с API sfdc или Python?
response = client.post("/composite", data=body, **kwargs)
records = []
for r in response.get("compositeResponse", ()):
if r["httpStatusCode"] >= 300:
continue
if flatten:
for rec in r["body"]["records"]:
records.append(rec)
else:
records.append(r["body"]["records"])
return records
клиент здесь — объект sfdclib.rest.SfdcRestApi по адресу 0x7ffb887a99d0






композит особенный. Получаете ли вы одинаковое количество результатов при запуске каждого «внутреннего» запроса вручную? Возможно, у некоторых из них просто установлен nextrecordsurl, но вы игнорируете его и получаете только 1-ю «страницу» результатов.
Почему композитный? Что происходит, когда вы делаете обычный запрос API для отдыха? Вам нужно собрать данные из разных таблиц за один раз?
Да, мне нужно собрать данные из другой таблицы, похоже, вы правы, он действительно отправляет обратно URL-адрес nextrecords.
Могу ли я в любом случае обработать эти nextrecordsurl данные одним запросом к составному API?
Никогда не пробовал, но у вас должна быть возможность выдать следующий составной запрос, где каждый подзапрос будет следующей записью, которую вы только что получили... Или даже придумайте свои собственные, как только вы получите 1-й, вы можете угадать суффикс с "начать с записи 2000, 4000" и т. д.
Нет, когда я запускаю запрос вручную, он возвращает все записи. Это только тогда, когда я делаю запрос на публикацию в конечную точку /composite и получаю ответ.