Pour l’étape suivante, je vais m’intéresser au sujet de l’issue #2 : passer des arguments à mon outil.

Comme vu dans un article précédent, je crée tout d’abord la branche et la MR depuis GitLab.

En guise d’API de test, je vous propose d’utiliser l’API du site OpenWeather qui nécessite une ApiKey.
Pour ce qui est de récupérer cette clé, je vous renvoie vers une de mes vidéos où j’en parle.

Dans un premier temps, je vérifie que ma requête fonctionne.
Il suffit de reprendre le code précédent et faire un appel comme décrit dans un de mes exemples IoT.

http://api.openweathermap.org/data/2.5/weather?q={city name},{state code},{country code}&appid={your api key}

Je peux maintenant ajouter la gestion des arguments passés à Dobby.
Je devrais d’ailleurs dire, une première gestion des arguments.
En effet, je vais tout d’abord utiliser le package flag.
Il est assez simple à appréhender, je vous montre ça tout de suite.

var urlPtr = flag.String(« url », «  », « Url que Dobby va appeler pour vous. »)
var apiKeyPtr = flag.String(« apikey », «  », « ApiKey a utiliser pour appeler votre url. »)
flag.Parse()

Ce package permet de définir des arguments en indiquant leur nom, une valeur par défaut et une description.
Il faut ensuite demander un parsing de ces arguments pour obtenir des pointeurs sur ces valeurs (oui, pas la valeur en direct, il faut que je me réhabitue à cette façon de penser des années 70 et du C 😇 )

L’appel se fait alors de cette façon, en se rappelant que les arguments sont récupérés par des pointeurs.

response, err := http.Get(*urlPtr + « &appid=«  + *apiKeyPtr + « &units=metric »)

Pour lancer dobby, on peut continuer en mode ‘go run’

~/Dobby/src# go run dobby.go -url=http://api.openweathermap.org/data/2.5/weather?q=Chamonix -apikey=<votre Api Key>

Me voilà équipé d’un système d’arguments, qui fournit également des services comme une aide en ligne avec l’argument ‘-h’

~/Dobby/src# go run dobby.go -h
Usage of /tmp/go-build863761866/b001/exe/dobby:
-apikey string
ApiKey a utiliser pour appeler votre url.
-url string
Url que Dobby va appeler pour vous.
exit status 2

Pas mal non ?

Je ne développe pas plus, je pense passer à un package plus complet par la suite. Je verrais alors de quoi j’ai besoin.

En cadeau, la vue de mon bureau du jour 😇
Lien vers Google Photo en attendant que j’ajoute le plugin pour Ghost. https://photos.app.goo.gl/eTozFE2ea4DWhwnh9