Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session
SOLVED

Assets HTTP API pagination and dispatcher caching

Avatar

Level 3

I am working on a component that loads content fragment data with javascript and a request to the assets HTTP API. I need a full result set but the response is paginated as described here:

https://experienceleague.adobe.com/docs/experience-manager-65/assets/extending/assets-api-content-fr...
If I passed ?limit=150, I would get all my results, but then the dispatcher won't cache the response without me setting a global ignoreUrlParams configuration as described here:

https://experienceleague.adobe.com/docs/experience-manager-dispatcher/using/configuring/dispatcher-c...

I need a more precise (not global) way to solve this that doesn't prevent dispatcher caching. I've considered writing a custom servlet to return the data, but if there's better, more out-of-the-box approach to this, I'd prefer it.

Suggestions?

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

Another option is to rewrite the API url on the live page JS code so that it passes the page size as a selector in the URL. Like - /api/assets/cf.150.json. And then you can add a rewrite rule in Apache to remove the selector and add it as a query param before it passes the URL to AEM for processing. However, on AEM author instance you will have to to use regular query param based URL only. 

View solution in original post

2 Replies

Avatar

Correct answer by
Employee Advisor

Another option is to rewrite the API url on the live page JS code so that it passes the page size as a selector in the URL. Like - /api/assets/cf.150.json. And then you can add a rewrite rule in Apache to remove the selector and add it as a query param before it passes the URL to AEM for processing. However, on AEM author instance you will have to to use regular query param based URL only.