Streaming View Service

Introduction

The streaming-view service provides a means to view items (products, categories, and regions) which have successfully been processed and are stored in the Streaming View Store.

The streaming-view service enables users to view items which have reached engine.out and stored in the Streaming View Store.

Allows users to view categories, regions, or products for a specific snapshot. Users can view either an individual item by using the external ID or all items for a specific item type in the specified snapshot.

Streaming view has many response styles that can be paged through by ID, a rolling count, or by viewing the full record (“processed”). If no responseStyle is provided, the default view is returned.

For large catalogs, it is recommended to page the results that are returned by using the “page” and “rows” parameter along with a responseStyle. You need to use a responseStyle to view the pagination JSON. For backward compatibility, the current view with the nextCursorMark is supported now for pagination but it is recommended to use the responseStyle and “page” parameter. The “page parameter is also used with the status service and invalid item store.

Note: cursorMark will be deprecated later in 2020. It is recommended to use a responseStyle with “rows” and “page”.

Streaming View Service Response Styles and Pagination

There are three responseStyles: count, id, and processed.  For each, a default number of items will automatically be returned. You can use the “rows” parameter to over-ride the default.

The following are descriptions for each parameter.

responseStyle

Description

Default returned without “rows” parameter defined

Max returned per page

processed

All attributes for an item. Current default view.

1,000

10,000

id

List of IDs for each item

5,000

50,.000

count

Rolling count - as you page through, the rolling count will increase

5,000 

50,000

count

Rolling count - as you page through, the rolling count will increase

5,000 

50,000

 

If the number of items in the view store is in thousands, it is recommended to page through the list of items, otherwise the streaming view service may timeout. There are two pagination parameters "rows" and “page”.  These parameters work only with the responseStyles listed above.

Pagination is optional and is invoked only when the "rows" parameter is included in the call. If the "rows" parameter is not included, the first 1,000 items are returned.

If the “rows” parameter is included with any of the responseStyles, then the list of status messages are paginated, and a pagination JSON is included at the beginning of the response. The pagination response will include the number of items returned, a rolling count,  and the nextPage token.  If the rows parameters are not included, the default rows will be returned which is listed above for each responseStyle.

Additional examples are available at the end of section, “parameters and endpoints”.

Example: responseStyle=count

Below is an example for the “count” response style, where the rolling total is provided. Note that the maximum number of items to be returned is 50,000 per page.

Copy
GET https://<host>/streaming-view/v1/apikey/<snapshotId>/<itemType>?responseStyle=count&rows=50000

Example:

apiKey: 123

Snapshot: 700

itemType: product

Copy
GET https://<host>/streaming-view/v1/123/700/product?responseStyle=count&rows=50000
Copy
Response:
{
    "pagination": {
        "rows": 50000,
        "nextPage": "50000:8lk9v2quqbajk",
        "runningTotal": 50000
    }
}

Example to get the next set of results.  

Note: If nextPage is an empty string and does not appear, then you are at the end of the results.

Copy
GET  https://<host>/streaming-view/v1/123/700/product?rows=50000&page=50000:8lk9v2quqbajk
Copy
{
    "pagination": {
        "rows": 50000,
        "nextPage": "100000:9b3oon3rfvncp",
        "runningTotal": 100000
    }
}

Example to get the next set of results, which is the end of the items.

Note: If nextPage is an empty string and does not appear, then you are at the end of the results.

Copy
GET  https://<host>/streaming-view/v1/123/700/product?responseStyle=count&rows=50000
Copy
&page=50000:8lk9v2quqbajk
{
    "pagination": {
        "rows": 30000,
         "runningTotal": 130000
    }
}

Note: Below is pagination for the current default view. This will be deprecated in late 2020.

Below is the URL syntax for paging through results. By default, the first 1000 items are returned.  The max value for rows is 10,000.

Copy
https://<host>/streaming-view/v1/<apiKey>/<snapshotId>/<itemType>?rows=<numberOfRowsPerPage>[&nextCursorMark=<nextCursorMarkFromEarlierResponse>]
'Authorization:Bearer <tokenValue>’

Streaming View Parameters and Endpoints

BaseURL:  https://<host>/streaming-view/v1/

'Authorization:Bearer <tokenValue>’

FullURL:  https://<host>/streaming-view/v1/<apiKey>/<snapshotId>/<itemType>/<externalId>

'Authorization:Bearer <tokenValue>’

Description

Syntax

Get all region items for a specific snapshot.

Note: The first 1000 items are returned.  Use pagination if there are more than 1000 items.

Copy
GET {baseURL}/<apiKey>/<snapshotId>/region

Get all category items for a specific snapshot.

Note: The first 1000 items are returned.  Use pagination if there are more than 1000 items.

Copy
GET {baseURL}/<apiKey>/<snapshotId>/category

Get the hierarchy of the category items for a specific snapshot.

Copy
GET {baseURL}/<apiKey>/<snapshotId>/category/hierarchy

Get a specific product, region, or category item.

Copy
GET {baseURL}/<apiKey>/<snapshotId>/<itemType>/<externalId>

Pagination: 

Currently works with responseStyleTypes:  id, count, and processed.
If “rows” parameter is not included, the default number of items is returned. Defaults are defined in the above table. 

Copy
https://<host>/streaming-view/v1/<apiKey>/<snapshotId>/<itemType>?responseStyle=
<responseStyeType>&rows=<itemsPerPage>

Next Page:

Page through the view store. nextPage value is provided in the response. The pagination JSON includes a rolling count

Copy
https://<host>/streaming-view/v1/<apiKey>/<snapshotId>/<itemType>?responseStyle=
<responseStyeType>&rows=<itemsPerPage>& page=<nextPage>

Note: The following is for the current default view of items. “nextCursorMark” will be deprecated in late 2020 and replaced with nextPage.

Copy
https://<host>/streaming-view/v1/<apiKey>/<snapshotId>/product?[rows=
<numberOfRowsPerPage>]

Response will include:
numFound - total number of results
nextCursorMark - to be used to retrieve the next page of results 

Get the first 1000 products or optionally set the number of rows to be returned using the “rows” parameter. If numFound is greater than the rows returned, please use pagination to get the next page of results.

Example:
 "numFound": 101,
"nextCursorMark": "AoEtcDo3NjkwNTE0MDM4Mw=="

Get the next 1000 products or the number of rows that have been set.

Copy
https://<host>/streaming-view/v1/<apiKey>/<snapshotId>/product?rows=
<numberOfRowsPerPage>&nextCursorMark=<nextCursorMarkFromEarlierReponse>

 

Parameters

Name

Description

Required or Optional

Values and Additional Information

<itemType>

Streaming Catalog supports item types such as product, category, and region, along with ‘Reference Content’. However, ‘Engage content’ (banners, campaigns etc) is not supported in the Streaming Catalog.

Required

product, category, or region

<apiKey>

Unique identifier for a customer’s environment.

For example, if a customer has multiple environments in production or staging, each will have a unique apiKey. There can be many apiKeys associated to a client_ID

Required

Provided by RR to customer

<snapshotId>

Specifies the uUnique identifier for the snapshot

Required

snapshotId is provided in the response when creating the snapshot.

<externalId>

Specifies the unique item identifier.

Optional

 

hierarchy

Category specific parameter to display the category items' hierarchy.

Optional

Example:

Copy
GET {baseURL}/<apiKey>/<snapshotId>/category/hierarchy

Rows

Specifies the number of rows to be returned. 

Optional

integer. Default is 1,000. Max is 10,000. 

Example:  rows=100

Page

To see the next page, the page parameter needs to be included with the <nextpage> value that is returned in the pagination JSON.

 

 

 

Recommendable

To count the recommendable products .

The “propVal” property should be set to “true” to count the recommendable products.

Note: If you do not include the “propVal” property, then all products that have the <propName>  property will be counted.

Optional

Copy
https://<host>/streaming-view/v1/<apiKey>/<snapshotId>/product?rows=50000&
responseStyle=count&propName=recommendable&propVal=true

 

Example

Examples are provided below.    

Example 1:  Category Hierarchy

where apiKey: 123, snapshotId: 999

Copy
GET https:/gateway.richrelevance.com/streaming-view/v1/123/999/category/hierarchy
Response:
200 OK
{
    "hierarchy": {
        "sampleCategory1": [
            "sampleCategory2"
        ]
    },
    "root": [
        "sampleCategory1"
    ]
}

Example 2:  Counting Recommendable Products

The “recommendable” parameter counts the number of items that are within the “rows” parameter. It is possible that it finds only 500 recommendable products in the first 50,000 and if there are more products, then the response would include a “nextPage”.  If there is a “nextPage”, then you should issue another call to keep counting with the page parameter as shown in this example.

Copy
https://<host>/streaming-view/v1/<apiKey>/<snapshotId>/product?rows=50000&responseStyle=count&propName=recommendable&propVal=true  
Response:
{
    "pagination": {
        "rows": 8232,
        "nextPage": "8232:8lfkfekmjeqvv",
        "runningTotal": 8232
    }
}

Go to the next page to continue counting:

Copy
https://<host>/streaming-view/v1/<apiKey>/<snapshotId>/product?rows=50000&responseStyle=count&propName=recommendable&propVal=true&page=8232:8lfkf3kmjeqvv
Response:
{
    "pagination": {
        "rows": 8262,
        "nextPage": "16494:9b13bdemejftg",
        "runningTotal": 16494
    }
}

Note: Continue the same until you do not find a “nextPage”.