algolia / algolia/algoliasearch-client-python
feat(rules): Client side information consequence in rules
- Langage dominant
- Python
- Étoiles
- 207
- Forks
- 63
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
**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)
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par l’issue interne des specs #152 et suivez la manière dont rules.consequence est représenté dans les réponses de recherche. Confirmez que les structures redirect, facetMerchandising et userData, y compris les champs stricts et les métadonnées, sont exposées sous la forme du tableau renderingContent décrit dans l’issue.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- api, backend
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100