Le processus de communication entre Hops et un serveur compatible avec Hops ne se limite pas à l’envoi et à la réception d’une requête et d’une réponse http. Pour commencer, Hops empaquette la définition de Grasshopper référencée et envoie une requête http à un point de terminaison sur le serveur.
Un point de terminaison est une adresse URL à laquelle le serveur peut être joint pour exécuter une certaine fonction. Lorsqu’il reçoit cette requête, le serveur ouvre la définition de Grasshopper envoyée par Hops et détermine quelles informations seront nécessaires pour renseigner les entrées et les sorties du composant Hops. Le point de terminaison sera donc appelé /io (pour « Input Output »).
Le composant Hops doit alors disposer des informations nécessaires pour créer les nœuds d’entrée et de sortie dont il a besoin.
Lorsque toutes les entrées de Hops ont été connectées aux paramètres source, il envoie une autre requête http au serveur ; mais cette fois-ci, il envoie la requête au point de terminaison /solve. La définition de Grasshopper n’a pas besoin d’être renvoyée puisqu’elle a été enregistrée sur le serveur pendant le processus /io. Au lieu de cela, les données envoyées dans la requête /solve ne contiennent qu’un pointeur ID qui indique au serveur où trouver le bon fichier et toutes les données d’entrée.
La réponse http du serveur contient toutes les données qui seraient renvoyées si le fichier Grasshopper était exécuté de manière traditionnelle.
Pour mieux comprendre le fonctionnement de chacune des étapes précédentes, vous pouvez exporter la dernière requête http et la dernière réponse http pour les points de terminaison /io et /solve directement à partir du composant Hops.
