Make : création d’un module/app custom avec l’Api ZenChef

ZenChef est une application destinée aux restaurants qui souhaitent avoir un outil de suivi client : réservation, commentaires, notes, etc.

Pour notre exemple, nous allons créer un nouveau apps :

Puis créer :

Il faut juste suivre les instructions pour créer votre app.

Vous avez maintenant votre module, il contient un certain nombre d’onglet :

Nous allons voir uniquement les parties « base » et « modules ».

BASE :

Cette partie permet de remplir des données de « base » comme la base url par exemple :

{
	"baseUrl": "[url_de_base_api]",
	"log": {
		"sanitize": ["request.headers.authorization"]
	},
	"response": {
        "error": {
            "message": "[{{statusCode}}] {{if(body.error_summary, body.error_summary, body)}}"
        }
    }
}

MODULES :

Les modules sont éléments que vous aller pouvoir utiliser dans un scénario :

Nous allons regarder en détails « Search Reviews ».

Tout d’abord il faut créer un module :

Ici nous utiliser le Type « Search » et je vous laisse compléter le reste.

Vous arriver sur la page du module :

Ici nous voulons que le programme cherche les derniers reviews arrivés selon le nombre page choisi.


Dans l’onglet communication :

{
	"url": "/reviews",
	"method": "GET",
	"qs": {
		"limit":"{{parameters.limit}}",
		"sort[fields]":"created_at",
		"sort[order]":"desc"
	},
	"body": {
	},
	"headers": {
        "auth-token": "{{parameters.token}}",
        "restaurantId": "{{parameters.restaurantId}}",
		"Content-Type":"application/json"
	},
	"response": {
		"output": "{{body.data}}"
	},
       "pagination": {
        "stopOnEmptyResponse": true,
		"qs": {"page":"{{(body.paginator.current_page)+1}}"},
 		"condition": "{{(body.paginator.current_page)+1<=parameters.nbPageMaxi}}"
       }
}

url : est la partie suivant la base url définie au niveau de l’app dans « Base ».
qs : éléments qui se trouve dans l’url en mode « GET »
header : élements dans le header HTTP
response : comment traiter la réponse ici body.data permet d’itérer sur les données du tableau body
pagination : si il y a une pagination, donne les règles de récupération

Dans l’onglet mappable parameters :

[
    {
        "name": "token",
        "type": "text",
        "label": "Auth Token",
        "required": true
    },
    {
        "name": "restaurantId",
        "type": "text",
        "label": "Restaurant ID",
        "required": true
    },
    {
        "name": "limit",
        "label": "Number records in page",
        "type": "uinteger",
        "default": 100
    },
    {
        "name": "nbPageMaxi",
        "label": "Number of maximum page",
        "type": "uinteger", 
        "default": 10
    }
]

Permet d’ajouter des paramètres à notre module, on peut les appeler par parameters.[nom_varaible] dans l’onglet communication. Un certain d’attributs peuvent être fournis.

L’utilisation d’un module est plutôt simple, il s’utilise comme les autres modules. Pour notre exemple, il ressemble à ceci :