In my opinion you should create a dedicated route that will return a JSON response of all reviews.
Then you create a dedicated JS file that will be embedded. This file will look for the parent holder. For instance:
<div id="reviews"></div>
// In the JS
let parent = document.getElementById('reviews');
if (parent) {
if (window.fetch) {
// Watch out for CORS
fetch('https://your-super-route')
.then(function (response) {
for (i in response) {
// Append to DOM
}
});
}
}
This is untested, just an example
Other option: Your JS file creates an Iframe element and set the iframe's source to your route.