routes method is where you define how you fetch the generated view from the Delivery API
If your view should be routable you must implement the routes method and call context methods to build routes.
Routes example
RoutesContext object
TheRoutesContext object is passed into the routes method and gives you access to a set of methods which is described below.
Methods
| Method | Description |
|---|---|
| handle | A handle is a key from which you can fetch the view. A view can have multiple handles. |
| lookup | Lookup allows you to search source entities using a filter string and work with the source entities directly in the schema. |
| url | A string value that represents the url you want to fetch the view by. A view can only have one url. |
handle
Handle allows you to specify a key from which you can fetch the view from the Delivery API.handle(handle)
Parameters
| Parameter | Type | Description |
|---|---|---|
handle | string | The key you use to fetch the view from the Delivery API |
lookup
Lookup allows you to search source entities using a filter string and build dynamic handles or URLS based on data from other source entities. Note thelookup is an async function so you have to use async/await or then when you are using the lookup function.
lookup(filter)
The
lookup function is limited to a maximum number of items to return, based on the tenant plan. It can however be increased per tenant basis. Please reach out to Enterspeed if needed.The default limits are:- Free & Premium plans: 100 items
- Enterprise plan: 500 items
Parameters
| Parameter | Type | Description |
|---|---|---|
filter | string | A filtering criteria. See list of filter examples |
lookupOptions | object | An optional object with the following structure: { excludeProperties?: boolean; }If excludeProperties is set to true the lookup will only return the base fields of the source entities and not all custom properties. This will help improve performance if you don’t need the custom properties, but only some of the base fields like originId, originParentId, url |
Required function calls
After thelookup function it’s required to call toPromise to excecute the query and return a promise.
toPromise
toPromise
Using the toPromise function excecutes the query and return a promise you must resolve.
look toPromise
Optional function calls
To filter the source entities even further you can call some of the following optional functions.limit
limit
The
limit function limits the number of source entities.Parameters
| Parameter | Type | Description |
|---|---|---|
limit | number | The maximum number of source entities to return. |
look and limit
orderBy
orderBy
The order sequence of the source entities.
Parameters
| Parameter | Type | Description |
|---|---|---|
orderBy | { propertyName: string, direction: “asc” | “desc” } | Allows you to specify your desired sorting order. |
lookup and orderBy
sourceGroup
sourceGroup
The sourceGroup function lets you specify the source group. By default the source group of the current source entity is used.
If not defined, it uses the current source group.
Parameters
| Parameter | Type | Description |
|---|---|---|
sourceGroup | string | Allows you to define a different source group. The sourceGroupAlias should be equal to the desired source group alias where you want to look for source entities. |
lookup and sourceGroup
Examples
lookup using async/await
lookup using 'then'
url
url allows you to specify a url from which you can fetch the view from the delivery.url(url)
Parameters
| Parameter | Type | Description |
|---|---|---|
url | string | The url you use to fetch the view from the Delivery API |
Optional function calls
To theurl function you can call some of the following optional functions.
redirects
redirects
The
redirects function creates incomming redirects to a specific url.Setting the redirects to an empty array clears any potential implicit redirects.
Parameters
| Parameter | Type | Description |
|---|---|---|
redirects | string[] | Adds a list of incomming redirects to the URL. |
routes with url and redirects
Examples
routes example with url and multiple handles
routes example with single url
routes can also be expressed as an arrow function expression to make it even more compact