ContributionsMost RecentMost LikesSolutionsRe: SCSS Issue Tracker It would be great to have some minor changes in SDK to be able to upload only changed files. I know you guys are focused on Aurora, but there are numerous legacy clients, and this has been asked for for at least 8 years. Additionally, better error messages in Freemarker, especially when it's a CSS problem. When there is a CSS problem, the entire site is blown up and there is no way to trace the problem except to trace your own steps. No numbers given. This includes line numbers for errors. Sometimes they are included, sometimes not. Sometimes the error messages make some sense, sometimes Freemarker errors are indecipherable. A single ; in the text.properties file can blow up the entire site. It would be great to see that changed so that it just throws an error with a line number as well. Re: Showing SVG images based on Forum language Claudius has given you the best options here. Re: Create Message API V2 Questions I'm assuming these are custom fields that you had KHOROS create for you? Re: How to get only Messages where some specific custom field have value? Have you tried SELECT id, body, subject FROM messages WHERE c_country !='' Re: Is a Studio cheat sheet available? There are a few more documents available detailing the OOTB components if this doesn't answer your question. LMK. Re: Can I cache the JSON returned by an endpoint? Would like to not make the AJAX or API call repeatedly How I resolved this with a little input from here and elsewhere. I have always found the appcache confusing so I needed some help. Thanks. <#if page.context?? && page.context.message??> <#assign myKey = "myKey_"+page.context.message.uniqueId /> <#else> <#assign myKey = "xyz" /> </#if> <#if appcache.get("myKey", "--EMPTY--") == "--EMPTY--"> <#assign apiURL = "https://stage.apiurl.com/api/id/A1B2C3d4" /> <#assign apiResponse = http.client.request("https","stage.apiurl.com","/api/id/A1B2C3d4") .header("authorization", "APIKey whateveryourA4IK3Yis" ) .header("content-type", "application/json;charset=UTF-8" ) </> <#assign apiResponse = apiResponse.post() /> <#assign content = apiResponse.content /> ${appcache.put("myKey", content)} ${content} <#else> ${appcache.get("myKey")} </#if> Re: Can I cache the JSON returned by an endpoint? Would like to not make the AJAX or API call repeatedly Thanks 🙂 Re: Javascript fetch vs Freemarker http.client.request issues Nope. Thanks, anyway, friend. I've opened a support case, so Khoros will give me an answer sometime in the next six months on this. Does <@liaMarkupCache> cache the ajax calls in a component? For example, if you're calling an endpoint and you want to cache the response (JSON) from that endpoint, will this cache it? <@liaMarkupCache ttl="100000" variation="node" anonymousOnly="false" /> <@liaAddScript> (function($) { $(document).ready(function() { $.get( "${my_endpoint_url}" ).done(function( data ) { let dt = new Date().toLocaleString() console.log(dt, data); }).fail(function() { console.log('fail'); }) }); })(LITHIUM.jQuery); </@liaAddScript> Can I cache the JSON returned by an endpoint? Would like to not make the AJAX or API call repeatedly I have an endpoint that calls an external API which returns JSON. It's for "related content" for a post. (Yes, I know Khoros has an OOTB and a componentized version of that already for Hermes, but I need to access our own DB of related content, which is reached through an API call.) My end goal is that each post on our Community have related content from this API but that it only gets called every day or so, and the related content is displayed from the cache. Let's just say the JSON is something like this: { [ { "author":"John", "title":"Some article" "url":"community/t5/Developer-Discussion/Caching-API-objects/m-p/217953" }, { "author":"Mary", "title":"Another article" "url":"community/t5/Developer-Discussion/dvice-on-performance-for-external-API-query/m-p/208726" } ] } That is currently the output of the endpoint. That data is consumed by a component <@liaAddScript> (function($) { $(document).ready(function() { $.get( "${my_endpoint_url}" ).done(function( data ) { console.log(data); }).fail(function() { console.log('fail'); }) }); })(LITHIUM.jQuery); </@liaAddScript> (I hate that the only way to get a component is through AJAX, I wish there were a server-side way to get the data. Unless you know another way to get endpoint data...?) I want to cache the results of the endpoint so that the external API call is not made repeatedly. We want the most efficient execution of this. Do I cache it in the endpoint or the component? What's the best practice in order to avoid multiple calls to the API? Please help a friend out with a code example so I can understand it better. I have found several questions about it here on Atlas but they are very old (2015-2018), not answered, or archived, and I'm not sure exactly how to apply it. luk is this one still relevant? https://community.khoros.com/t5/Developer-Discussion/Advice-on-performance-for-external-API-query/m-p/208726#M9485 Do you, luk , Claudius or Akenefick DougS (or anyone else) have some thoughts on this? Thanks Solved