Repository navigation
Missing Pagination for List of Directs #612
Description
Activity
- addedstatus:waiting-for-triageAn issue that is yet to be reviewed or assignedAn issue that is yet to be reviewed or assignedtype:bugA broken experienceA broken experience
on Oct 28, 2024 Samwel K. (@samwelkanda) Vincent Biret (@baywet) -- tagging some regulars here, are you guys monitoring the issues list? Thanks!
Hi Hannes Schulz (@temporaer)
Thank you for using the SDK and for reaching out.You can use the page iterator to page through the different pages automatically.
Unfortunately, there's no documentation sample for Python yet, but using the other languages and reading the source you should be able to extrapolate. CC Jason Johnston (@jasonjoh)
Let us know if you have any additional comments or questions.
- addeddocumentationImprovements or additions to documentationImprovements or additions to documentationtype:documentationGeneral documentation request or project documentation updateGeneral documentation request or project documentation updatearea:documentationFocused on documentation of the productFocused on documentation of the productand removedstatus:waiting-for-triageAn issue that is yet to be reviewed or assignedAn issue that is yet to be reviewed or assignedtype:bugA broken experienceA broken experience
on Nov 19, 2024 Vincent Biret (@baywet) , Jason Johnston (@jasonjoh), why is this not a bug? Why isn't pagination implemented without user intervention like for other list operations?
Hannes Schulz (@temporaer) depending on the application and requirements, some scenarios might require a full enumeration of all the elements (e.g. auditing data sets), some might need to stop mid-way through (e.g. user clicking a UI and paging through), and others might only need the first page (e.g. recap of the last few elements).
We cannot assume that every application out there is going to need all items of the collection, that'd put unnecessary burden on the service and the client applications for scenarios where it's not needed.
Let us know if you have any additional comments or questions.
Vincent Biret (@baywet) , you could return an iterator instead of a list, as is common practice. Then, each application can decide whether to fetch the next page, without adding unnecessary burden on the service.
We did discuss that in the early design of this new generation of SDKs and decided to keep things simple for now. Here is more context in case you're interested.
microsoft/kiota#1569Vincent Biret (@baywet) , I see. That's a very different argument though. In this case, please make sure this limitation is clearly documented, and a (potentially more involved) way to list all directs is provided. Thank you!
I'm not super sure about the linked context -- it fseems that there, the work was completed, but it doesn't seem to explain why it wasn't picked up in the newer version of the SDK. Is there generally no pagination support, or are there certain list operations that you left out intentionally?
Ah sorry, I assumed the context had been shared from internal discussions.
The gist being: we needed a way to generate paging for the CLI, as layering CLI calls is more complex than in any other language.
We were faced with a choice between building that in a bespoke way for the CLI only, or making it generic for any language that kiota supports.
In the end, to prioritize the release of the CLI, it was decided to take the shortest path, and NOT make things generic for other languages to include an additional "getAll" method (in addition to get) which would include paging.Let us know if you have any additional comments or questions.
Describe the bug
I am fetching directs via
client.users.by_user_id(user_id).direct_reports.get(). The list is incomplete for users with many directs. Browsing through the code a bit, it seems that this API ignores the nextLink property and only returns the first page.Expected behavior
The list of returned directs should be complete.
How to reproduce
user_idwith many directsclient.users.by_user_id(user_id).direct_reports.get()SDK Version
1.11.0
Latest version known to work for scenario above?
none.
Known Workarounds
No response
Debug output
Click to expand log
```