A Way to get all list values for a CollectionResponse?
@jussihi ci sta già lavorando.
Dal 8/10/2024.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Is your feature request related to a problem? Please describe the problem.
Is there already a way to get all items for a CollectionResponse? Currently the API/SDK returns only a page of results, and then we need to fetch more by using odata_next_link.
Is there a way to get all results in a single request?
I have made a helper function which I use, is this the best way;
# Takes in any CollectionResponse
async def get_complete_paginated_list(
request_builder_func: Any,
request_configuration: Optional[Any] = None
) -> List[Any]:
ret: List[Any] = []
collection_response: Any = await request_builder_func.get()
# Nothing to return here
if collection_response is None or collection_response.value is None:
return ret
def add_response_items(response: Optional[Any], items: List[Any]) -> None:
if response is not None and response.value is not None:
for item in response.value:
items.append(item)
# Add initial results
add_response_items(collection_response, ret)
# Iterate pages
while collection_response is not None and collection_response.odata_next_link is not None:
collection_response: Optional[Any] = await request_builder_func.with_url(collection_response.odata_next_link).get(request_configuration = request_configuration)
if collection_response is not None:
add_response_items(collection_response, ret)
return ret
It can then be used like this;
mailfolders: List[MailFolder] = await get_complete_paginated_list(graph_client.users.by_user_id(user_id).mail_folders)
Describe the solution you'd like.
something like what I've made
Additional context?
No response
- Lingua principale
- Python
- Stelle
- 630
- Fork
- 96
- Merge medio
- 15h 20m
- PR unite (30g)
- 3
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoftgraph/msgraph-sdk-python
-
status:waiting-for-triage type:bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
microsoftgraph/msgraph-sdk-python#1570 ·
-
status:waiting-for-triage type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
microsoftgraph/msgraph-sdk-python#1563 ·
-
Needs: Attention :wave: type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
microsoftgraph/msgraph-sdk-python#1287 · 2 commenti · 1 reazione ·
-
Batch Request Support Apertastatus:waiting-for-triage
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
microsoftgraph/msgraph-sdk-python#1557 ·
-
status:waiting-for-triage type:bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
microsoftgraph/msgraph-sdk-python#1556 · 1 commento · 1 reazione ·
Tutte le issue di microsoftgraph/msgraph-sdk-python
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
OpenHands/extensions#626 · 1 commento ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
CSCfi/sd-search-api#39 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
please add to porn list Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
StevenBlack/hosts#3255 ·