TweedeKamerDerStaten-Generaal / OpenDataPortaal

GitHub van het officiële Open Data Portaal van de Tweede Kamer der Staten-Generaal.
https://opendata.tweedekamer.nl
49 stars 3 forks source link

@odata.nextLink ook toepassen bij aanwezigheid $top parameter #70

Closed NoWarries closed 2 months ago

NoWarries commented 2 years ago

Momenteel wordt “Wanneer een query meer dan 250 resultaten geeft (…) onderaan de pagina een query die leidt naar de volgende pagina.” Toegevoegd; dit is fijn aangezien dit aangeeft dat er meer resultaten beschikbaar zijn.

Echter is bij het plaatsen van de $top functionaliteit dit niet het geval (staat ook niet beschreven in de documentatie dus in die zin logisch)

Maar nu zou het naar mijn mening een toegevoegde waarde zijn als deze bovengenoemde query (@odata.nextLink) ook weergeven wordt wanneer er een $top functionaliteit/parameter aanwezig is. Dit omdat :

I ) Het consistentie met zich meebrengt; als er meer resultaten zijn buiten de huidige weergaven wordt de @odata.nextLink geplaatst en niet alleen als dit het geval is is bij 250+ items. Dus bij elke overflow usecase is het resultaat hetzelfde

II ) Het handig is voor bijvoorbeeld pagination. Waar het resource technisch niet logisch is om 250 items in te laden maar bijvoorbeeld 25. Maar het wel handig is om te weten of er nog meer resultaten voor de zoekopdracht beschikbaar zijn.

OpenDataPortaal commented 2 years ago

Goede suggestie! Dit gaan we op de ontwikkelwensenlijst zetten, deze hopen we in de nabije toekomst zo volledig mogelijk op GitHub te publiceren in de vorm van issues. In dit geval zou het dan zo worden dat de @odata.nextLink van bijvoorbeeld: gegevensmagazijn.tweedekamer.nl/OData/v4/2.0/Activiteit?$top=25

het volgende geeft: gegevensmagazijn.tweedekamer.nl/OData/v4/2.0/Activiteit?$top=25&skip=25

OpenDataPortaal commented 2 months ago

Met de implementatie van skiptoken (https://learn.microsoft.com/nl-nl/odata/webapi/skiptoken-for-server-side-paging) is de aard van dit issue veranderd. Skiptoken is paginering aan de serverzijde en $top en $skip biedt de mogelijkheid voor paginering aan de gebruikerszijde. We laten het aan gebruikers om eventueel eigen eigen paginering met $top en $skip te bouwen maar bieden zelf enkel standaard paginering aan de serverzijde aan vanwege de betere prestaties.