Install the Product Rating and Reviews Glue API
Edit on GitHubThis document describes how to install the Product Raiting and Reviews Glue API feature.
Install feature core
Follow the steps below to install the Product Raiting and Review Glue API feature core.
Prerequisites
To start feature integration, integrate the required features and Glue APIs:
NAME | VERSION | INSTALLATION GUIDE |
---|---|---|
Spryker Core Glue API | 202311.0 | Install the Spryker Core Glue API |
Product Rating & Reviews | 202311.0 | Install the Product Rating and Reviews feature |
1) Install the required modules
composer require spryker/product-reviews-rest-api:"^1.1.0" --update-with-dependencies
Make sure that the following module has been installed:
MODULE | EXPECTED DIRECTORY |
---|---|
ProductReviewsRestApi | vendor/spryker/product-reviews-rest-api |
2) Set up database schema and transfer objects
Generate transfer changes:
console transfer:generate
console propel:install
console transfer:generate
Make sure that the following changes have been applied in the transfer objects:
TRANSFER | TYPE | EVENT | PATH |
---|---|---|---|
RestProductReviewsAttributesTransfer | class | created | src/Generated/Shared/Transfer/RestProductReviewsAttributesTransfer |
BulkProductReviewSearchRequestTransfer | class | created | src/Generated/Shared/Transfer/BulkProductReviewSearchRequestTransfer |
StoreTransfer | class | created | src/Generated/Shared/Transfer/StoreTransfer |
Make sure that SpyProductAbstractStorage
and SpyProductConcreteStorage
are extended by synchronization behavior with these methods:
ENTITY | TYPE | EVENT | PATH | METHODS |
---|---|---|---|---|
SpyProductAbstractStorage | class | extended | src/Orm/Zed/ProductStorage/Persistence/Base/SpyProductAbstractStorage | syncPublishedMessageForMappings(), syncUnpublishedMessageForMappings() |
SpyProductConcreteStorage | class | extended | src/Orm/Zed/ProductStorage/Persistence/Base/SpyProductConcreteStorage | syncPublishedMessageForMappings(), yncUnpublishedMessageForMappings() |
3) Reload data to storage
Reload abstract and product data to storage.
console event:trigger -r product_abstract
console event:trigger -r product_concrete
Make sure that there is data in Redis with keys:
kv:product_abstract:{{store_name}}:{{locale_name}}:sku:{{sku_product_abstract}}
kv:product_concrete:{{locale_name}}:sku:{{sku_product_concrete}}
4) Enable resources
Activate the following plugins:
PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
---|---|---|---|
AbstractProductsProductReviewsResourceRoutePlugin | Registers the product-reviews resource. | None | Spryker\Glue\ProductReviewsRestApi\Plugin\GlueApplication |
src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php
<?php
namespace Pyz\Glue\GlueApplication;
use Spryker\Glue\GlueApplication\GlueApplicationDependencyProvider as SprykerGlueApplicationDependencyProvider;
use \Spryker\Glue\ProductReviewsRestApi\Plugin\GlueApplication\AbstractProductsProductReviewsResourceRoutePlugin;
class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependencyProvider
{
/**
* @return \Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRoutePluginInterface[]
*/
protected function getResourceRoutePlugins(): array
{
return [
new AbstractProductsProductReviewsResourceRoutePlugin(),
];
}
}
Make sure that the following endpoints are available:
https://glue.mysprykershop.com/abstract-products/{{abstract_sku}}/product-reviews
Example
{
"data": [
{
"type": "product-reviews",
"id": "21",
"attributes": {
"rating": 4,
"nickname": "Spencor",
"summary": "Donec vestibulum lectus ligula",
"description": "Donec vestibulum lectus ligula, non aliquet neque vulputate vel. Integer neque massa, ornare sit amet felis vitae, pretium feugiat magna. Suspendisse mollis rutrum ante, vitae gravida ipsum commodo quis. Donec eleifend orci sit amet nisi suscipit pulvinar. Nullam ullamcorper dui lorem, nec vehicula justo accumsan id. Sed venenatis magna at posuere maximus. Sed in mauris mauris. Curabitur quam ex, vulputate ac dignissim ac, auctor eget lorem. Cras vestibulum ex quis interdum tristique."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/abstract-products/139/product-reviews/21"
}
},
{
"type": "product-reviews",
"id": "22",
"attributes": {
"rating": 4,
"nickname": "Maria",
"summary": "Curabitur varius, dui ac vulputate ullamcorper",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vel mauris consequat, dictum metus id, facilisis quam. Vestibulum imperdiet aliquam interdum. Pellentesque tempus at neque sed laoreet. Nam elementum vitae nunc fermentum suscipit. Suspendisse finibus risus at sem pretium ullamcorper. Donec rutrum nulla nec massa tristique, porttitor gravida risus feugiat. Ut aliquam turpis nisi."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/abstract-products/139/product-reviews/22"
}
},
{
"type": "product-reviews",
"id": "23",
"attributes": {
"rating": 4,
"nickname": "Maggie",
"summary": "Aliquam erat volutpat",
"description": "Morbi vitae ultricies libero. Aenean id lectus a elit sollicitudin commodo. Donec mattis libero sem, eu convallis nulla rhoncus ac. Nam tincidunt volutpat sem, eu congue augue cursus at. Mauris augue lorem, lobortis eget varius at, iaculis ac velit. Sed vulputate rutrum lorem, ut rhoncus dolor commodo ac. Aenean sed varius massa. Quisque tristique orci nec blandit fermentum. Sed non vestibulum ante, vitae tincidunt odio. Integer quis elit eros. Phasellus tempor dolor lectus, et egestas magna convallis quis. Ut sed odio nulla. Suspendisse quis laoreet nulla. Integer quis justo at velit euismod imperdiet. Ut orci dui, placerat ut ex ac, lobortis ullamcorper dui. Etiam euismod risus hendrerit laoreet auctor."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/abstract-products/139/product-reviews/23"
}
},
{
"type": "product-reviews",
"id": "25",
"attributes": {
"rating": 3,
"nickname": "Spencor",
"summary": "Curabitur ultricies, sapien quis placerat lacinia",
"description": "Etiam venenatis sit amet lorem eget tristique. Donec rutrum massa nec commodo cursus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse scelerisque scelerisque augue eget condimentum. Quisque quis arcu consequat, lacinia nulla tempor, venenatis ante. In ullamcorper, orci sit amet tempus tincidunt, massa augue molestie enim, in finibus metus odio at purus. Mauris ut semper sem, a ornare sapien. Fusce eget facilisis felis. Integer imperdiet massa a tortor varius, tincidunt laoreet ipsum viverra."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/abstract-products/139/product-reviews/25"
}
},
{
"type": "product-reviews",
"id": "26",
"attributes": {
"rating": 5,
"nickname": "Spencor",
"summary": "Cras porttitor",
"description": "Cras porttitor, odio vel ultricies commodo, erat turpis pulvinar turpis, id faucibus dolor odio a tellus. Mauris et nibh tempus, convallis ipsum luctus, mollis risus. Donec molestie orci ante, id tristique diam interdum eget. Praesent erat neque, sollicitudin sit amet pellentesque eget, gravida in lectus. Donec ultrices, nisl in laoreet ultrices, nunc enim lacinia felis, ac convallis tortor ligula non eros. Morbi semper ipsum non elit mollis, non commodo arcu porta. Mauris tincidunt purus rutrum erat ornare, varius egestas eros eleifend."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/abstract-products/139/product-reviews/26"
}
}
],
"links": {
"self": "http://glue.de.suite-nonsplit.local/abstract-products/139/product-reviews?page[offset]=0&page[limit]=5",
"last": "http://glue.de.suite-nonsplit.local/abstract-products/139/product-reviews?page[offset]=0&page[limit]=5",
"first": "http://glue.de.suite-nonsplit.local/abstract-products/139/product-reviews?page[offset]=0&page[limit]=5"
}
}
https://glue.mysprykershop.com/abstract-products/{{abstract_sku}}/product-reviews/{{review_id}}
Example
{
"data": {
"type": "product-reviews",
"id": "21",
"attributes": {
"rating": 4,
"nickname": "Spencor",
"summary": "Donec vestibulum lectus ligula",
"description": "Donec vestibulum lectus ligula, non aliquet neque vulputate vel. Integer neque massa, ornare sit amet felis vitae, pretium feugiat magna. Suspendisse mollis rutrum ante, vitae gravida ipsum commodo quis. Donec eleifend orci sit amet nisi suscipit pulvinar. Nullam ullamcorper dui lorem, nec vehicula justo accumsan id. Sed venenatis magna at posuere maximus. Sed in mauris mauris. Curabitur quam ex, vulputate ac dignissim ac, auctor eget lorem. Cras vestibulum ex quis interdum tristique."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/abstract-products/139/product-reviews/21"
}
}
}
5) Enable relationships
Activate the following plugins:
PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
---|---|---|---|
ProductReviewsRelationshipByProductAbstractSkuPlugin | Adds product-reviews relationship by abstract product sku. | None | \Spryker\Glue\ProductReviewsRestApi\Plugin\GlueApplication |
ProductReviewsRelationshipByProductConcreteSkuPlugin | Adds product-reviews relationship by concrete product sku. | None | \Spryker\Glue\ProductReviewsRestApi\Plugin\GlueApplication |
ProductReviewsAbstractProductsResourceExpanderPlugin | Expands abstract-products resource with reviews data. | None | Spryker\Glue\ProductReviewsRestApi\Plugin\ProductsRestApi |
ProductReviewsConcreteProductsResourceExpanderPlugin | Expands concrete-products resource with reviews data. | None | Spryker\Glue\ProductReviewsRestApi\Plugin\ProductsRestApi |
src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php
<?php
namespace Pyz\Glue\GlueApplication;
use Spryker\Glue\GlueApplication\GlueApplicationDependencyProvider as SprykerGlueApplicationDependencyProvider;
use Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRelationshipCollectionInterface;
use Spryker\Glue\ProductReviewsRestApi\Plugin\GlueApplication\ProductReviewsRelationshipByProductAbstractSkuPlugin;
use Spryker\Glue\ProductReviewsRestApi\Plugin\GlueApplication\ProductReviewsRelationshipByProductConcreteSkuPlugin;
use Spryker\Glue\ProductsRestApi\ProductsRestApiConfig;
class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependencyProvider
{
/**
* @param \Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRelationshipCollectionInterface $resourceRelationshipCollection
*
* @return \Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRelationshipCollectionInterface
*/
protected function getResourceRelationshipPlugins(
ResourceRelationshipCollectionInterface $resourceRelationshipCollection
): ResourceRelationshipCollectionInterface {
$resourceRelationshipCollection->addRelationship(
ProductsRestApiConfig::RESOURCE_ABSTRACT_PRODUCTS,
new ProductReviewsRelationshipByProductAbstractSkuPlugin()
);
$resourceRelationshipCollection->addRelationship(
ProductsRestApiConfig::RESOURCE_CONCRETE_PRODUCTS,
new ProductReviewsRelationshipByProductConcreteSkuPlugin()
);
return $resourceRelationshipCollection;
}
}
src/Pyz/Glue/ProductsRestApi/ProductsRestApiDependencyProvider.php
<?php
namespace Pyz\Glue\ProductsRestApi;
use Spryker\Glue\ProductReviewsRestApi\Plugin\ProductsRestApi\ProductReviewsAbstractProductsResourceExpanderPlugin;
use Spryker\Glue\ProductReviewsRestApi\Plugin\ProductsRestApi\ProductReviewsConcreteProductsResourceExpanderPlugin;
use Spryker\Glue\ProductsRestApi\ProductsRestApiDependencyProvider as SprykerProductsRestApiDependencyProvider;
class ProductsRestApiDependencyProvider extends SprykerProductsRestApiDependencyProvider
{
/**
* @return \Spryker\Glue\ProductsRestApiExtension\Dependency\Plugin\ConcreteProductsResourceExpanderPluginInterface[]
*/
protected function getConcreteProductsResourceExpanderPlugins(): array
{
return [
new ProductReviewsConcreteProductsResourceExpanderPlugin(),
];
}
/**
* @return \Spryker\Glue\ProductsRestApiExtension\Dependency\Plugin\AbstractProductsResourceExpanderPluginInterface[]
*/
protected function getAbstractProductsResourceExpanderPlugins(): array
{
return [
new ProductReviewsAbstractProductsResourceExpanderPlugin(),
];
}
}
-
Make a request to
https://glue.mysprykershop.com/abstract-products/{{abstract_sku}}?include=product-reviews
. -
Make sure that the response contains
product-reviews
as a relationship andproduct-reviews
data included. -
Make sure that
averageRating
andreviewCount
attributes are present in concrete-products and abstract-products resources attributes section.
Example
{
"data": {
"type": "abstract-products",
"id": "139",
"attributes": {
"sku": "139",
"averageRating": 4,
"reviewCount": 5,
"name": "Asus Transformer Book T200TA",
"description": "As light as you like Transformer Book T200 is sleek, slim and oh so light—just 26mm tall and 1.5kg docked. And when need to travel even lighter, detach the 11.6-inch tablet for 11.95mm slenderness and a mere 750g weight! With up to 10.4 hours of battery life that lasts all day long, you’re free to work or play from dawn to dusk. And ASUS Instant On technology ensures that Transformer Book T200 is always responsive and ready for action! Experience outstanding performance from the latest Intel® quad-core processor. You’ll multitask seamlessly and get more done in less time. Transformer Book T200 also delivers exceptional graphics performance—with Intel HD graphics that are up to 30% faster than ever before! Transformer Book T200 is equipped with USB 3.0 connectivity for data transfers that never leave you waiting. Just attach your USB 3.0 devices to enjoy speeds that are up to 10X faster than USB 2.0!",
"attributes": {
"product_type": "Hybrid (2-in-1)",
"form_factor": "clamshell",
"processor_cache_type": "2",
"processor_frequency": "1.59 GHz",
"brand": "Asus",
"color": "Black"
},
"superAttributesDefinition": [
"form_factor",
"processor_frequency",
"color"
],
"superAttributes": [],
"attributeMap": {
"product_concrete_ids": [
"139_24699831"
],
"super_attributes": [],
"attribute_variants": []
},
"metaTitle": "Asus Transformer Book T200TA",
"metaKeywords": "Asus,Entertainment Electronics",
"metaDescription": "As light as you like Transformer Book T200 is sleek, slim and oh so light—just 26mm tall and 1.5kg docked. And when need to travel even lighter, detach t",
"attributeNames": {
"product_type": "Product type",
"form_factor": "Form factor",
"processor_cache_type": "Processor cache",
"processor_frequency": "Processor frequency",
"brand": "Brand",
"color": "Color"
},
"url": "/en/asus-transformer-book-t200ta-139"
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/abstract-products/139?include=product-reviews"
},
"relationships": {
"product-reviews": {
"data": [
{
"type": "product-reviews",
"id": "21"
},
{
"type": "product-reviews",
"id": "22"
},
{
"type": "product-reviews",
"id": "23"
},
{
"type": "product-reviews",
"id": "25"
},
{
"type": "product-reviews",
"id": "26"
}
]
}
}
},
"included": [
{
"type": "product-reviews",
"id": "21",
"attributes": {
"rating": 4,
"nickname": "Spencor",
"summary": "Donec vestibulum lectus ligula",
"description": "Donec vestibulum lectus ligula, non aliquet neque vulputate vel. Integer neque massa, ornare sit amet felis vitae, pretium feugiat magna. Suspendisse mollis rutrum ante, vitae gravida ipsum commodo quis. Donec eleifend orci sit amet nisi suscipit pulvinar. Nullam ullamcorper dui lorem, nec vehicula justo accumsan id. Sed venenatis magna at posuere maximus. Sed in mauris mauris. Curabitur quam ex, vulputate ac dignissim ac, auctor eget lorem. Cras vestibulum ex quis interdum tristique."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/product-reviews/21"
}
},
{
"type": "product-reviews",
"id": "22",
"attributes": {
"rating": 4,
"nickname": "Maria",
"summary": "Curabitur varius, dui ac vulputate ullamcorper",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vel mauris consequat, dictum metus id, facilisis quam. Vestibulum imperdiet aliquam interdum. Pellentesque tempus at neque sed laoreet. Nam elementum vitae nunc fermentum suscipit. Suspendisse finibus risus at sem pretium ullamcorper. Donec rutrum nulla nec massa tristique, porttitor gravida risus feugiat. Ut aliquam turpis nisi."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/product-reviews/22"
}
},
{
"type": "product-reviews",
"id": "23",
"attributes": {
"rating": 4,
"nickname": "Maggie",
"summary": "Aliquam erat volutpat",
"description": "Morbi vitae ultricies libero. Aenean id lectus a elit sollicitudin commodo. Donec mattis libero sem, eu convallis nulla rhoncus ac. Nam tincidunt volutpat sem, eu congue augue cursus at. Mauris augue lorem, lobortis eget varius at, iaculis ac velit. Sed vulputate rutrum lorem, ut rhoncus dolor commodo ac. Aenean sed varius massa. Quisque tristique orci nec blandit fermentum. Sed non vestibulum ante, vitae tincidunt odio. Integer quis elit eros. Phasellus tempor dolor lectus, et egestas magna convallis quis. Ut sed odio nulla. Suspendisse quis laoreet nulla. Integer quis justo at velit euismod imperdiet. Ut orci dui, placerat ut ex ac, lobortis ullamcorper dui. Etiam euismod risus hendrerit laoreet auctor."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/product-reviews/23"
}
},
{
"type": "product-reviews",
"id": "25",
"attributes": {
"rating": 3,
"nickname": "Spencor",
"summary": "Curabitur ultricies, sapien quis placerat lacinia",
"description": "Etiam venenatis sit amet lorem eget tristique. Donec rutrum massa nec commodo cursus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse scelerisque scelerisque augue eget condimentum. Quisque quis arcu consequat, lacinia nulla tempor, venenatis ante. In ullamcorper, orci sit amet tempus tincidunt, massa augue molestie enim, in finibus metus odio at purus. Mauris ut semper sem, a ornare sapien. Fusce eget facilisis felis. Integer imperdiet massa a tortor varius, tincidunt laoreet ipsum viverra."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/product-reviews/25"
}
},
{
"type": "product-reviews",
"id": "26",
"attributes": {
"rating": 5,
"nickname": "Spencor",
"summary": "Cras porttitor",
"description": "Cras porttitor, odio vel ultricies commodo, erat turpis pulvinar turpis, id faucibus dolor odio a tellus. Mauris et nibh tempus, convallis ipsum luctus, mollis risus. Donec molestie orci ante, id tristique diam interdum eget. Praesent erat neque, sollicitudin sit amet pellentesque eget, gravida in lectus. Donec ultrices, nisl in laoreet ultrices, nunc enim lacinia felis, ac convallis tortor ligula non eros. Morbi semper ipsum non elit mollis, non commodo arcu porta. Mauris tincidunt purus rutrum erat ornare, varius egestas eros eleifend."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/product-reviews/26"
}
}
]
}
-
Make a request to
https://glue.mysprykershop.com/concrete-products/{{concrete_sku}}?include=product-reviews
. -
Make sure that the response contains
product-reviews
as a relationship andproduct-reviews
data included.
Example
{
"data": {
"type": "concrete-products",
"id": "139_24699831",
"attributes": {
"sku": "139_24699831",
"isDiscontinued": false,
"discontinuedNote": null,
"averageRating": 4,
"reviewCount": 5,
"name": "Asus Transformer Book T200TA",
"description": "As light as you like Transformer Book T200 is sleek, slim and oh so light—just 26mm tall and 1.5kg docked. And when need to travel even lighter, detach the 11.6-inch tablet for 11.95mm slenderness and a mere 750g weight! With up to 10.4 hours of battery life that lasts all day long, you’re free to work or play from dawn to dusk. And ASUS Instant On technology ensures that Transformer Book T200 is always responsive and ready for action! Experience outstanding performance from the latest Intel® quad-core processor. You’ll multitask seamlessly and get more done in less time. Transformer Book T200 also delivers exceptional graphics performance—with Intel HD graphics that are up to 30% faster than ever before! Transformer Book T200 is equipped with USB 3.0 connectivity for data transfers that never leave you waiting. Just attach your USB 3.0 devices to enjoy speeds that are up to 10X faster than USB 2.0!",
"attributes": {
"product_type": "Hybrid (2-in-1)",
"form_factor": "clamshell",
"processor_cache_type": "2",
"processor_frequency": "1.59 GHz",
"brand": "Asus",
"color": "Black"
},
"superAttributesDefinition": [
"form_factor",
"processor_frequency",
"color"
],
"metaTitle": "Asus Transformer Book T200TA",
"metaKeywords": "Asus,Entertainment Electronics",
"metaDescription": "As light as you like Transformer Book T200 is sleek, slim and oh so light—just 26mm tall and 1.5kg docked. And when need to travel even lighter, detach t",
"attributeNames": {
"product_type": "Product type",
"form_factor": "Form factor",
"processor_cache_type": "Processor cache",
"processor_frequency": "Processor frequency",
"brand": "Brand",
"color": "Color"
}
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/concrete-products/139_24699831?include=product-reviews"
},
"relationships": {
"product-reviews": {
"data": [
{
"type": "product-reviews",
"id": "21"
},
{
"type": "product-reviews",
"id": "22"
},
{
"type": "product-reviews",
"id": "23"
},
{
"type": "product-reviews",
"id": "25"
},
{
"type": "product-reviews",
"id": "26"
}
]
}
}
},
"included": [
{
"type": "product-reviews",
"id": "21",
"attributes": {
"rating": 4,
"nickname": "Spencor",
"summary": "Donec vestibulum lectus ligula",
"description": "Donec vestibulum lectus ligula, non aliquet neque vulputate vel. Integer neque massa, ornare sit amet felis vitae, pretium feugiat magna. Suspendisse mollis rutrum ante, vitae gravida ipsum commodo quis. Donec eleifend orci sit amet nisi suscipit pulvinar. Nullam ullamcorper dui lorem, nec vehicula justo accumsan id. Sed venenatis magna at posuere maximus. Sed in mauris mauris. Curabitur quam ex, vulputate ac dignissim ac, auctor eget lorem. Cras vestibulum ex quis interdum tristique."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/product-reviews/21"
}
},
{
"type": "product-reviews",
"id": "22",
"attributes": {
"rating": 4,
"nickname": "Maria",
"summary": "Curabitur varius, dui ac vulputate ullamcorper",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vel mauris consequat, dictum metus id, facilisis quam. Vestibulum imperdiet aliquam interdum. Pellentesque tempus at neque sed laoreet. Nam elementum vitae nunc fermentum suscipit. Suspendisse finibus risus at sem pretium ullamcorper. Donec rutrum nulla nec massa tristique, porttitor gravida risus feugiat. Ut aliquam turpis nisi."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/product-reviews/22"
}
},
{
"type": "product-reviews",
"id": "23",
"attributes": {
"rating": 4,
"nickname": "Maggie",
"summary": "Aliquam erat volutpat",
"description": "Morbi vitae ultricies libero. Aenean id lectus a elit sollicitudin commodo. Donec mattis libero sem, eu convallis nulla rhoncus ac. Nam tincidunt volutpat sem, eu congue augue cursus at. Mauris augue lorem, lobortis eget varius at, iaculis ac velit. Sed vulputate rutrum lorem, ut rhoncus dolor commodo ac. Aenean sed varius massa. Quisque tristique orci nec blandit fermentum. Sed non vestibulum ante, vitae tincidunt odio. Integer quis elit eros. Phasellus tempor dolor lectus, et egestas magna convallis quis. Ut sed odio nulla. Suspendisse quis laoreet nulla. Integer quis justo at velit euismod imperdiet. Ut orci dui, placerat ut ex ac, lobortis ullamcorper dui. Etiam euismod risus hendrerit laoreet auctor."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/product-reviews/23"
}
},
{
"type": "product-reviews",
"id": "25",
"attributes": {
"rating": 3,
"nickname": "Spencor",
"summary": "Curabitur ultricies, sapien quis placerat lacinia",
"description": "Etiam venenatis sit amet lorem eget tristique. Donec rutrum massa nec commodo cursus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse scelerisque scelerisque augue eget condimentum. Quisque quis arcu consequat, lacinia nulla tempor, venenatis ante. In ullamcorper, orci sit amet tempus tincidunt, massa augue molestie enim, in finibus metus odio at purus. Mauris ut semper sem, a ornare sapien. Fusce eget facilisis felis. Integer imperdiet massa a tortor varius, tincidunt laoreet ipsum viverra."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/product-reviews/25"
}
},
{
"type": "product-reviews",
"id": "26",
"attributes": {
"rating": 5,
"nickname": "Spencor",
"summary": "Cras porttitor",
"description": "Cras porttitor, odio vel ultricies commodo, erat turpis pulvinar turpis, id faucibus dolor odio a tellus. Mauris et nibh tempus, convallis ipsum luctus, mollis risus. Donec molestie orci ante, id tristique diam interdum eget. Praesent erat neque, sollicitudin sit amet pellentesque eget, gravida in lectus. Donec ultrices, nisl in laoreet ultrices, nunc enim lacinia felis, ac convallis tortor ligula non eros. Morbi semper ipsum non elit mollis, non commodo arcu porta. Mauris tincidunt purus rutrum erat ornare, varius egestas eros eleifend."
},
"links": {
"self": "http://glue.de.suite-nonsplit.local/product-reviews/26"
}
}
]
}
Thank you!
For submitting the form