TsWin / Pingly

Une API qui ping vos sites
MIT License
6 stars 0 forks source link

Pingly

Le but de cet API est de pouvoir ping et faire du monitoring de statut sur un siteweb/IP.

Points importants

Fonctionnement

Versions

L'API garde ces anciennes versions de fonctionnement, vous pouvez donc choisir la version de l'API que vous souhaitez dans le lien de la requête.

/api/vX/ (X = version de l'API)

Exemple `https://mondomaine.fr/api/v2/`

Basique

Version API:

v1 Le lien dépend de votre nom de domaine mais il existe une partie fixe: `/api/v1/host/votreIPouURL.fr`
Exemple `https://mondomaine.fr/api/v1/host/google.com`
Résultat Attendu ```json { "pingInfo": { "host": "google.com", "alive": true, "output": "PING google.com (172.217.19.238): 56 data bytes\n64 bytes from 172.217.19.238: icmp_seq=0 ttl=119 time=15.800 ms\n\n--- google.com ping statistics ---\n1 packets transmitted, 1 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 15.800/15.800/15.800/0.000 ms\n", "time": 15.8, "times": [ 15.8 ], "min": "15.800", "max": "15.800", "avg": "15.800", "stddev": "0.000", "packetLoss": "0.000", "numeric_host": "172.217.19.238" }, "statusInfo": { "sitewebAccessible": true, "statusCode": 200, "error": null, "statusMessage": "OK" } } ```
v2 Le lien dépend de votre nom de domaine mais il existe une partie fixe qui dépend de votre demande: #### Ping Simple `/api/v2/ping/votreIPouURL.fr`
Exemple `https://mondomaine.fr/api/v2/ping/google.com`
Résultat Attendu ```json { "pingInfo": { "host": "google.com", "alive": true, "output": "PING google.com (142.250.178.142): 56 data bytes\n64 bytes from 142.250.178.142: icmp_seq=0 ttl=119 time=14.771 ms\n\n--- google.com ping statistics ---\n1 packets transmitted, 1 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 14.771/14.771/14.771/0.000 ms\n", "time": 14.771, "times": [ 14.771 ], "min": "14.771", "max": "14.771", "avg": "14.771", "stddev": "0.000", "packetLoss": "0.000", "numeric_host": "142.250.178.142" } } ```
#### Ping avec Statut `/api/v2/status/votreIPouURL.fr`
Exemple `https://mondomaine.fr/api/v2/status/google.com`
Résultat Attendu ```json { "pingInfo": { "host": "google.com", "alive": true, "output": "PING google.com (216.58.213.142): 56 data bytes\n64 bytes from 216.58.213.142: icmp_seq=0 ttl=119 time=15.788 ms\n\n--- google.com ping statistics ---\n1 packets transmitted, 1 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 15.788/15.788/15.788/0.000 ms\n", "time": 15.788, "times": [ 15.788 ], "min": "15.788", "max": "15.788", "avg": "15.788", "stddev": "0.000", "packetLoss": "0.000", "numeric_host": "216.58.213.142" }, "statusInfo": { "sitewebAccessible": true, "statusCode": 200, "error": null, "statusMessage": "OK" } } ```

Options

Port

Vous pouvez ping un lien qui contient un port en rajoutant ceci:

<> ne pas ajouter

.../votreIPouURL.fr?port=<votre port>

Exemple `.../google.com?port=80`

Timeout

Vous pouvez choisir le temps avant que la requête soit annulée

<> ne pas ajouter

.../votreIPouURL.fr?timeout=<temps en millisecondes>

Exemple `.../google.com?timeout=5000`

Ajouter plusieures options

Pour cela il vous suffit de remplacer le deuxième ? par un &

Exemple `.../google.com?port=80&timeout=5000`

API Publique

Le site pingly.app est et sera continuellement actualisé avec la dernière version de cette api. Vous pouvez donc utiliser ce lien librement et a bon escient.

Mise en place

Installation des modules:

Pour installer les modules nécéssaire au bon fonctionnement de l'API il faut éxécuter cette commande dans le terminal du dossier

npm install

Tracking d'erreurs avec Sentry

Cette API utilise Sentry comme logiciel d'enregistrement d'erreurs et de performances. Pour faire fonctionner ce système il suffit de mettre la clé correspondant à votre projet dans Sentry dans le fichier .env (expliqué ici).

Cette fonctionnalité n'est pas obligatoire mais est cependant fortement recommandée pour avoir un aperçu des erreurs qu'il pourrait avoir lieu.

Configuration:

Il existe un fichier .env.exemple il faut le renommer et enlever le .exemple. Vous pourrez par la suite modifier les informations si situant à l'intérieur pour changer la configuration de votre API

Informations:

Le fichier de démarrage est le app.js

Les scripts de démarrages disponibles sont: