Hi,
I have a question about what the contents of the ‘links’ should be when a combination of pagination and filtering is used.
Concrete: should the ‘next’ link also contain the filter parameters, or just (for example) ‘page[size]=10&page[number]=2’?
If the filter parameters are not part of the link, I guess they cannot be used to navigate through a filtered collection…
I think you are correct in this reading of the pagination and the general indifference of JSON:api on filtering, see 6.7 Filtering (using my specification reference, see PR). Or just look up Filtering (not as easy IMHO )
The filter query parameter is reserved for this. It becomes a bit harder using a POST and a request body for filtering though (which is a proposal my team is looking to use).
The collection you are paginating is defined by the collection you’re addressing by the URL and any non-pagination parameters provided (filter, sort, or non-standard parameters). So the pagination links present in the top-level links` for a collection response should include all the required parameters.
In my implementation, I copy all the non-pagination parameters into all the links in my response rendering library, so it’s always handled the same way. The pagination support is responsible for providing any page[...] parameters needed for each of the links.
Thank you for the suggestions.
I will request the filter parameters to be copied to the pagination links (I am consuming this API).
This makes the most sense to me.