algolia / algolia/algoliasearch-client-python

feat(rules): Client side information consequence in rules

Abierto
#518 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
207
Forks
63
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**Summary**

With the release of the merchandising UI, the need to control UI aspects using the QR is growing and the rules API needs to expose fields to store information to perform specific client side tasks in a structured way.

The new consequence `consequence.renderingContent` contains a json object where each top level attribute is restricted to known use cases. The currently identified use cases are:
- Redirect
- Facet merchandising / ordering
- User defined data

Each top level excepted the `userData` one have a schema which is enforced and strict and customers can add metadata using the `userData` object:

```json
{
"condition": {
"anchoring": "is",
"pattern": "samsung"
},
"consequence": {
"renderingContent": {
"redirect": {
"url": "https://algolia.com/samsung" // required by the API
},
"facetMerchandising": {
"order": [ "brand", "price"] // required by the API
},
"userData": {
"callback": "displayBrand(samsung)" // optional field defined by user
}
}
}
}
```

This information will be returned in a structured way in the path `rules.consequence` of the search response:

```json
{
"hits": [...],
[...],
"query": "samsung",
"rules": {
"consequence": {
"renderingContent": [ // Array containing the content of matching rules
{
"facetMerchandising": {
"order": [
"brand",
"price"
]
},
"redirect": {
"url": "https://algolia.com/samsung"
},
"userData": {
"callback": "displayBrand(samsung)"
}
}
]
}
},
"userData": [ // Legacy userData
{
"myUserData": {}
}
]
}
```

Internal specs issue: [#152](https://github.com/algolia/algoliasearch-client-specs-internal/issues/152)

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza con el issue interno de specs #152 y sigue cómo se representa rules.consequence en las respuestas de búsqueda. Confirma que las estructuras redirect, facetMerchandising y userData, incluidos los campos estrictos y los metadatos, se exponen como el array renderingContent descrito en el issue.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
api, backend
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.