Travailler avec des chaînes de clubs
Les chaînes de clubs sont des enseignes regroupant plusieurs clubs physiques tels que des franchises et/ou des clubs en nom propre. Resamania est parfaitement adapté à la gestion de ces enseignes.
Avant de commencer
Chez Resamania nous distinguons 2 organisations :
- Les enseignes simples, dans lesquelles les clubs partagent tout le savoir. Il s'agit principalement d'enseignes de clubs en nom propre.
- Les enseignes avec un réseau, dans lesquelles le partage de la donnée est contrôlé et restreint. Il s'agit là souvent d'enseignes regroupant plusieurs sociétés.
Travailler avec des enseignes simples n'impose aucune contrainte au développement. Il s'agit du fonctionnement standard de Resamania et tous les exemples et la documentation API sont utilisables tels que décrits.
Déterminer l'organisation de mon enseigne
Une enseigne décide, lors de son parcours d'accueil chez Resamania, de mettre en place ou non un réseau.
Comprendre les réseaux
Resamania propose un mécanisme simple pour imposer du contrôle. Nos réseaux sont basés sur des arbres et des noeuds à l'image de l'organisation de l'enseigne.
Pour imposer du contrôle il suffit de répondre à 2 questions :
- Où suis-je ?
- Pour qui est-ce que j'agis ?
Par exemple, je suis à la maison mère
et j'agis pour le club de Paris 18ème
.
La première réponse détermine la donnée à laquelle vous pouvez accéder. La deuxième réponse caractérise les actions que vous voulez entreprendre comme faire une vente, ajouter un mandat, s'inscrire à un cours...
Développer pour une enseigne en réseau ?
Le contrôle que souhaite imposer le réseau peut avoir des répercussions sur votre développement. En effet lors de chaque requête, l'API doit répondre aux 2 questions précédentes, où êtes vous et pour qui agissez vous ?
Il existe alors 2 cas distincts :
- Votre application utilise une authentification nominative (méthodes
code
etpassword
) pour identifier les membres des clubs. L'API sait répondre d'elle même aux questions et vous n'avez aucune contrainte dans son utilisation. - Votre application utilise une authentification anonyme (méthode
client credentials
). Vous devrez fournir les réponses aux questions.
Connaître le réseau
Avant de pouvoir répondre aux questions, intéressons nous au réseau. Une fois authentifié, vous avez accès à tout ou partie du réseau.
Faire un appel GET à l'API Resamania 2 comme suit :
https://{api_base_url}/{client_token}/network_nodes
Se référer au tableau ci dessous pour les paramètres de la requête
paramètre | description |
---|---|
api_base_url | L'url de l'API que vous souhaitez utiliser. Celle-ci varie selon les environnements d'intégration et de production |
client_token | Chaque enseigne possède son identifiant Resamania appelé client_token |
L'API vous retourne en réponse les informations suivantes :
[
{
"@id":"/{client_token}/network_nodes/1",
"@type":"NetworkNode",
"id":4,
"name":"Maison mère",
"alias":null,
"type":"group",
"clubId": null,
"children":[
{
"@id":"/{client_token}/network_nodes/4",
"@type":"NetworkNode",
"id":4,
"name":"Club Paris 18eme",
"alias":null,
"type":"club",
"clubId":"/{client_token}/clubs/48",
"children":[
]
},
{
"@id":"/{client_token}/network_nodes/60",
"@type":"NetworkNode",
"id":60,
"name":"Club Paris 16eme",
"alias":null,
"type":"club",
"clubId":"/{client_token}/clubs/183",
"children":[
]
}
]
}
]
paramètre | description |
---|---|
@id | Identifiant textuel du noeud aussi appelé IRI |
id | Identifiant numérique du noeud du réseau |
name | Le nom du noeud du réseau. Celui-ci est donné lors de la création du réseau. |
alias | Interne à Resamania |
type | Il existe différents types de noeud, group , mixed , franchise et club |
clubId | Identifiant du club associé au noeud. Seulement renseigné pour les noeuds de type club |
children | Liste des noeuds enfants, ce qui définit l'arbre du réseau. |
Répondre à la question : "Où suis-je ?"
Vous devez littéralement vous positionner sur un noeud du réseau. Cette position déterminera le panel de données accessibles.
A noter, vous ne pouvez vous positionner que sur des noeuds de type
group
etclub
.
Une fois le noeud déterminé, la valeur attendue est son identifiant textuel :
/{client_token}/network_nodes/{id}
Répondre à la question : "Pour qui j'agis ?"
Toutes les actions entreprises le sont pour le compte d'un club, vous devrez donc founir un identifiant textuel de club.
/{client_token}/clubs/{id}
Présenter les réponses à l'API Resamania
Tout appel à l'API devra être accompagné de ces réponses. Ajoutez pour cela 2 headers X-User-Network-Node-Id
(où je suis ?) et X-User-Club-Id
(Pour qui j'agis ?). Voici un exemple de ce à quoi ressemble un appel en cURL :
curl -H 'X-User-Network-Node-Id: /{client_token}/network_nodes/{id}'
-H 'X-User-Club-Id: /{client_token}/clubs/{id}'
https://{api_base_url}
Retours d'erreurs communs de l'API Resamania
403 : accès refusé
Si l'API ne sait déterminer les réponses liées aux réseau, que les headers sont absents et/ou que les positionnements sont illicites, l'API Resamania vous retournera un code HTTP 403 : accès refusé