-
Notifications
You must be signed in to change notification settings - Fork 2.7k
GraphQL Pagination #16224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Do not attempt to circumvent this process by "bumping" the issue; doing so will result in its immediate closure and you may be barred from participating in any future discussions. Please see our contributing guide. |
If we can get my PR in for the GraphQL filtering redesign, I'll add this feature as well. |
Just want to add my support for this feature. Without pagination I end up having to use more inefficient workarounds (querying devices by regions, or arbitrary groupings of sites) which add unnecessary complexity for what is ultimately trying to have pagination-like behavior without pagination. Throw in various bits of nested relationship data and complexity is tough to manage. Pagination would significantly improve the experience and simplicity of API workflows. |
Note: When this is implemented, we'll need to ensure we don't introduce the bug cited in #18729, which results from non-deterministic ordering of a queryset. |
NetBox version
v4.0.2
Feature type
Data model extension
Proposed functionality
Pagination in GraphQL.
With the newly Strawberry.rocks GraphQL engine, it is possible to implement Pagination with a few simple modifications.
GraphQL Pagination
Strawberry Pagination
Strawberry Django offset-based
Strawberry Django cursor-based
Given the different ways of implementing pagination, it should be able to co-exist with non paginated queries, if needed.
This could be done by e.g. keeping the regular e.g.
device_list
query and adevice_connection
query.Use case
With large tables with e.g. interfaces doing queries with nested objects takes a lot of time due to the translation from QuerySets via the Execution of fields part of the spec.
Other forks like Nautobot supports offset-based pagination and the Rest API supports offset-based, so it would be a nice addition to the future use of GraphQL.
Currently if we want to do pagination for GraphQL we are to utilize the ordering and pagination of the Rest API with
ordering
andid__gt
queries.The query could be:
And would result in:
Database changes
None
External dependencies
None
The text was updated successfully, but these errors were encountered: