# TP Nodered

## TP API GET/POST

### Introduction

##### Exemples

[https://developer.twitter.com/en/docs/api-reference-index](https://developer.twitter.com/en/docs/api-reference-index)

[https://openweathermap.org/current](https://openweathermap.org/current)

## Installation de NodeRed

### Windows

1. Installer nodeJS 10.x : [https://nodejs.org/en/](https://nodejs.org/en/)
2. Lancer la console (cliquer sur Windows en bas à gauche, taper cmd le raccourci devrait apparaître)
3. Taper npm install -g --unsafe-perm node-red
4. Lancer nodeRed en tapant node-red (dans la console toujours)

### Autres OS

[https://nodered.org/docs/getting-started/local](https://nodered.org/docs/getting-started/local)

### A faire

Créer une API répondant aux demandes suivantes :

- GET /test : renvoie "coucou"
- GET /timestamp : renvoie le temps actuel en heure Posix (aussi appelé temps Unix ou Unix timestamp). Il sera exprimé en seconde.
- GET /multiplication?number1=xxx&amp;number2=yyy : renvoie le résultat de xxx\*yyy
- POST /insertmyname : renvoie "My name is xxx" xxx étant un prénom passer dans le body du message (indice NodeRED : c'est ce qui est passé dans msg.payload ;) )
- GET /velomag : renvoie le nombre de place(s) de vélo disponible(s) à la vélo-station Euromédecine (id = 41)

#### Liens utiles

Aide dates en node js : [https://usefulangle.com/post/187/nodejs-get-date-time](https://usefulangle.com/post/187/nodejs-get-date-time)

Open Data Montpellier : [https://data.montpellier3m.fr/dataset/disponibilite-des-places-velomagg-en-temps-reel/resource/adb98f8d-c4d2-4012-8abe](https://data.montpellier3m.fr/dataset/disponibilite-des-places-velomagg-en-temps-reel/resource/adb98f8d-c4d2-4012-8abe)

### Evaluation

Quand vous estimez avoir terminé, et seulement après ça, un script automatique va tester votre travail. Attention vous n'avez droit qu'à un essai. Suivez les étapes suivantes :

1. Connecter vous au point d'accès (SSID = AP\_EPSI\_4G Mot de passe = epsi123456).
2. Récupérer votre propre adresse IP (soit dans les menus de votre OS, soit en ligne de commande, elle doit avoir la forme 192.168.30.x x étant compris en entre 100 et 200). Dans la suite des explications elle sera notée **IP\_ELEVE**.
3. Demander au professeur l'adresse IP du serveur. Dans la suite des explications elle sera notée **IP\_SERVEUR**.
4. Dans votre navigateur, tapez : ` IP_SERVEUR:1880/evaluation?nom=VOTRE_NOM&prenom=VOTRE_PRENOM&ip=IP_ELEVE:1880&pass=VOTRE_MOT_DE_PASSE_EPSI ` Exemple : `192.168.30.100:1880/evaluation?nom=Dupont&prenom=Martin&ip=192.168.30.105:1880&pass=123ABC` <span style="text-decoration: underline;">Note :</span> on part du principe que autant côté serveur qu'élève, NodeRed tourne sous le port 1880. Dans le cas contraire, voir avec le professeur.
5. Le script va alors récupérer les informations dans l'URL, tester votre API et vous donner le résultat au format JSON que vous pouvez copier/coller [ici](https://jsonformatter.curiousconcept.com/) par exemple pour plus de lisibilité.