Успешные API ограничивают количество записей, возвращаемых на запрос

Я использую Python для извлечения данных из API Successfactor. Существует объект, настолько тяжелый, что 1000 записей по умолчанию, возвращаемых на запрос, всегда приводят к превышению времени ожидания сервера.

Я хочу уменьшить количество записей, возвращаемых на один запрос, чтобы избежать проблемы тайм-аута с сервера.

Я пробовал $top = 100 ... но не могу перейти к следующим 100, потому что в возвращаемом результате нет ни ссылки __next, ни опции $offset.

Я пытался ограничить количество возвращаемых столбцов nonNavigationProperties. все еще не помогает

Кто-нибудь знал, как решить это?

ниже приведен пример:

https://xxxx.successfactors.com/odata/v2/JobRequisition? $ format = JSON && $ filter = lastModifiedDateTime ge datetime'2015-08-27T00: 00: 00 'и lastModifiedDateTime le datetime'2015-08-27T23:59:59' и $ выберите = возраст,appTemplateId,assessRatingScaleName,cReq1UpApprover,cReqAddSourcing,cReqAdvertCost,cReqAdvertDetails,cReqAdvertDraftCopy,cReqAlternateLocation,cReqAppID,cReqAssignmentValue,cReqAward,cReqCancelCost,cReqCancelReason,cReqCancelbyELT,cReqChangetoterms,cReqChargeRate,cReqCompany,cReqContractDuration,cReqCoreSourcing,cReqCurrentEndDate,cReqDateShortlist,cReqDescServices,cReqEstAgencyCost,cReqEstCostOfHire,cReqExtensionEndDate,cReqExtensionStartDate,cReqFirstName,cReqFlexiWork,cReqHMPositionTitle,cReqHSE,cReqHiringManagerComments,cReqHoursPerWeek,cReqInt1Req,cReqJBComments,cReqLastName,cReqLimitedTermDuration,cReqLinkedInProject,cReqMarketMapInfo,cReqMaxRate,cReqNewDate,cReqOfferTarget,cReqOriginalREQID,cReqOriginalStartDate,cReqPOApprover1,cReqPOApprover2,cReqPOApprover3,cReqPreIdenCand,cReqPreferredName,cReqPropAccumPOSpend,cReqRateCardCode,cReqRateEndRange,cReqRateStartRange,cReqRateWSuper,cReqRecSearchFirm,cReqRemEndRange,cReqRemStartRange,cReqReplacementFor,cReqRequirements,cReqResTeamComments,cReqRetainer1,cReqRetainer2,cReqRetainer3,cReqRoleInfo,cReqRosterPatDetails,cReqSecondSourcing,cReqSrcPlan,cReqStartDate,cReqStartofRoster,cReqTesting,cReqTotalPOValuetodate,cReqTravel,cReqUserID,candidateProgress, город,closedDateTime,corporatePosting,costCenterId, страна,createdDateTime, валюта, DefaultLanguage, удаление, управление, отдел,erpAmount,extPostEndDate,extPostStartDate,formDataId,formDueDate,instCongofStartReq,instrConfirmStarted,instrContractExtnReq,instrContractHistory,instrContractReq,instrEmpReq,instrExecAssignmentInfo,instrFurtherInstructions,instrInterview1,instrJobBrief,instrNewHireName,instrPosDetails,instrPostingDetails,instrProposedContractCosts,instrProposedExtn,instrRateCardRate,instrReqCost,instrReqDetails,instrResTimeframe,instrRoleInfo,instrSrcPlan, инст rToManager,internalStatus,intranetPosting,isDraft,jobCode,jobGrade,jobGradeCode,jobReqGUId,jobReqId,jobRole,jobStartDate,lastModifiedBy,lastModifiedDateTime,lastModifiedProxyUserId, расположение,numberOpenings,openingsFilled,overallScaleName,positionNumber, почтовый индекс,ratedApplicantCount,relocationCost,reverseScale, StateProvince,statusSetId,templateId,templateType,timeToFill

1 ответ

Вы пытались использовать $skip?

https://xxxx.successfactors.com/odata/v2/JobRequisition?
$format=JSON&$filter=lastModifiedDateTime ge datetime'2015-08-27T00:00:00' 
and lastModifiedDateTime le datetime'2015-08-27T23:59:59'
&$top=100&$skip=100

Это должно привести к наборам 100-200 вместо 0-100...

Проверьте это: https://blogs.sap.com/2013/03/20/using-odatas-top-skip-and-count/

Я думаю, что нет "автоматической" возможности добиться этого с помощью следующей ссылки или чего-то еще, этого не существует. Я бы рекомендовал сначала использовать $count, чтобы получить общую сумму. Затем получите размер страницы с помощью команд top и skip.

Другие вопросы по тегам